ElasticSearch 2 (4) - API Convention
ElasticSearch 2.1.1 (4) - API Convention
The elasticsearch REST APIs are exposed using JSON over HTTP.
Mutiple Indices
Simple notation
test1,test2,test3
_all
Wildcards
test*
Add & Remove
+test*,-test3
API support
ignore_unavailable
true or false
allow_no_indices
true or false
expand_wildcards
open or close none or all
Data match support in index names
A date math index name takes the following form:
<static_name{date_math_expr{date_format|time_zone}}>
static_name
is the static text part of the name
date_math_expr
is a dynamic date math expression that computes the date dynamically
date_format
is the optional format in which the computed date should be rendered. Defaults to YYYY.MM.dd.
time_zone
is the optional time zone . Defaults to utc.
curl -XGET 'localhost:9200/<logstash-{now%2Fd-2d}>/_search' {
"query" : {
...
}
}
The / used for date rounding must be url encoded as %2F in any url.
Expression:
Given the current time is 22rd March 2024 noon utc.
----------------------------------------------------------------------
Expression | Resolves to
----------------------------------------------------------------------
<logstash-{now/d}> | logstash-2024.03.22
----------------------------------------------------------------------
<logstash-{now/M}> | logstash-2024.03.01
----------------------------------------------------------------------
<logstash-{now/M{YYYY.MM}}> | logstash-2024.03
----------------------------------------------------------------------
<logstash-{now/M-1M{YYYY.MM}}> | logstash-2024.02
----------------------------------------------------------------------
<logstash-{now/d{YYYY.MM.dd|+12:00}} | logstash-2024.03.23
----------------------------------------------------------------------
Static {}:
<elastic\\{ON\\}-{now/M}> resolves to elastic{ON}-2024.03.01
Searches the Logstash indices for the past three days:
curl -XGET 'localhost:9200/<logstash-{now%2Fd-2d}>,<logstash-{now%2Fd-1d}>,<logstash-{now%2Fd}>/_search' {
"query" : {
...
}
}
Common options
Pretty Results
?pretty=true
?format=yaml
Human readable outputedit
?human=false ("exists_time_in_millis": 3600000 or "size_in_bytes": 1024)
?human=true ("exists_time": "1h" or "size": "1kb")
Date Math
range queries
gt and lt
daterange aggregations
from and to
expression
now or ||
followed:
+1h - add one hour
-1h - substract one hour
/d - round down to the nearest day
supported time units:
y (year), M (month), w (week), d (day), h (hour), m (minute), and s (second)
examples
-----------------------------------------------------------------------------------------
now+1h | The current time plus one hour, with ms resolution.
-----------------------------------------------------------------------------------------
now+1h+1m | The current time plus one hour plus one minute, with ms resolution.
-----------------------------------------------------------------------------------------
now+1h/d | The current time plus one hour, rounded down to the nearest day.
-----------------------------------------------------------------------------------------
2015-01-01||+1M/d | 2015-01-01 plus one month, rounded down to the nearest day.
-----------------------------------------------------------------------------------------
Response Filtering
filter_path
curl -XGET 'localhost:9200/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score'
{
"took" : 3,
"hits" : {
"hits" : [
{
"_id" : "3640",
"_score" : 1.0
},
{
"_id" : "3642",
"_score" : 1.0
}
]
}
}
* wildcard
curl -XGET 'localhost:9200/_nodes/stats?filter_path=nodes.*.ho*'
{
"nodes" : {
"lvJHed8uQQu4brS-SXKsNA" : {
"host" : "portable"
}
}
}
** wildcard
curl 'localhost:9200/_segments?pretty&filter_path=indices.**.version'
{
"indices" : {
"movies" : {
"shards" : {
"0" : [ {
"segments" : {
"_0" : {
"version" : "5.2.0"
}
}
} ],
"2" : [ {
"segments" : {
"_0" : {
"version" : "5.2.0"
}
}
} ]
}
},
"books" : {
"shards" : {
"0" : [ {
"segments" : {
"_0" : {
"version" : "5.2.0"
}
}
} ]
}
}
}
}
_source
curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title'
{
"hits" : {
"hits" : [ {
"_source":{"title":"Book #2"}
}, {
"_source":{"title":"Book #1"}
}, {
"_source":{"title":"Book #3"}
} ]
}
}
Flat Setting
true
{
"persistent" : { },
"transient" : {
"discovery.zen.minimum_master_nodes" : "1"
}
}
false (default)
{
"persistent" : { },
"transient" : {
"discovery" : {
"zen" : {
"minimum_master_nodes" : "1"
}
}
}
}
Parameters
Rest parameters (when using HTTP, map to HTTP URL parameters) follow the convention of using underscore casing.
Boolean Values
"false"
false, 0, no and off
"true"
others
Number Values
Native JSON number types
string
Time units
------------------------------
y | Year
------------------------------
M | Month
------------------------------
w | Week
------------------------------
d | Day
------------------------------
h | Hour
------------------------------
m | Minute
------------------------------
s | Second
------------------------------
ms | Milli-second
------------------------------
Distance Units
-----------------------------------------
Mile | mi or miles
-----------------------------------------
Yard | yd or yards
-----------------------------------------
Feet | ft or feet
-----------------------------------------
Inch | in or inch
-----------------------------------------
Kilometer | km or kilometers
-----------------------------------------
Meter | m or meters
-----------------------------------------
Centimeter | cm or centimeters
-----------------------------------------
Millimeter | mm or millimeters
-----------------------------------------
Nautical mile | NM, nmi or nauticalmiles
-----------------------------------------
The precision parameter in the Geohash Cell Query accepts distances with the above units, but if no unit is specified, then the precision is interpreted as the length of the geohash.
Fuzziness
Numberic, date and IPv4 fields
Range Query
-fuzziness <= field value <= +fuzziness
fuzziness
numberic
2 or 2.0
date
a long as milliseconds
string
1h
ip
a long or IPv4 address (will be converted into a long)
String fields
Levenshtein Edit Distance
0, 1, 2
AUTO
For lengths:
0..2 - must match exactly
3..5 - one edit allowed
>5 - two edits allowed
Result Casing
underscore casing (default)
camelCase
Note, this does not apply to the source document indexed.
Request body in query string
For libraries that don’t accept a request body for non-POST requests, you can pass the request body as the source query string parameter instead.
URL-based access control
config.yml file:
rest.action.multi.allow_explicit_index: false
Reference
https://www.elastic.co/guide/en/elasticsearch/reference/current/api-conventions.html
ElasticSearch 2 (4) - API Convention的更多相关文章
- elasticsearch中的API
elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...
- Elasticsearch利用cat api快速查看集群状态、内存、磁盘使用情况
使用场景 当Elasticsearch集群中有节点挂掉,我们可以去查看集群的日志信息查找错误,不过在查找错误日志之前,我们可以通过elasticsearch的cat api简单判断下各个节点的状态,包 ...
- Elasticsearch for python API模块化封装
Elasticsearch for python API模块化封装 模块的具体功能 检测Elasticsearch节点是否畅通 查询Elasticsearch节点健康状态 查询包含的关键字的日志(展示 ...
- Springboot整合elasticSearch的官方API实例
前言:在上一篇博客中,我介绍了从零开始安装ElasticSearch,es是可以理解为一个操作数据的中间件,可以把它作为数据的存储仓库来对待,它具备强大的吞吐能力和计算能力,其基于Lucene服务器开 ...
- Elasticsearch中JAVA API的使用
1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...
- elasticsearch【cat API,系统数据】指令汇总
本博文讲述的ES获取系统数据的API是基于Elasticsearch 2.4.1版本的. 0. overview a. 下面将要介绍的所有的指令,都支持一个查询参数v(verbose),用来显示详细的 ...
- Elasticsearch使用REST API实现全文检索
通过rest api添加检索数据,阅读官方文档可以发现,elasticsearch支持动态映射,但是其中有不少问题,且听慢慢详解. 本文主要讲述三点内容: 1 Elasticsearch常用的rest ...
- 【重新分配分片】Elasticsearch通过reroute api重新分配分片
elasticsearch可以通过reroute api来手动进行索引分片的分配. 不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation ...
- elasticsearch 6.0java api的使用
elasticsearch 6.0 中java api的使用 1:使用java api创建elasticsearch客户端 package com.search.elasticsearch; impo ...
随机推荐
- 1 TCP/IP通信
重点参考长链接http://blog.csdn.net/fengyuzhengfan/article/details/38830115 http://blog.csdn.net/Jsagacity/a ...
- Vue入门2
欢迎转载,转载请注明出处. 前言 学习本系列Vue知识,需要结合本系列的一些demo.你可以查看我的 Github 或者直接下载 ZIP包 . 建议学习本系列之前已经会一个其他的前端框架,了解计算属性 ...
- leetcode650—2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...
- 各种 mv power cell
1. retention register : VDDB 是 backup power,当primary power shutoff 时 backup 会继续供电,将 reg 当前状态保存下来 2. ...
- JAVA框架 Spring JDBC模板
一:引入jar包: 1.数据驱动jar包: dbcp依赖的包: spring的事务包和数据库包: IOC包AOP包.log4j的包: 所有的jar包: 编写测试类: 注入JdbcTemplate类,该 ...
- nodejs 模板引擎jade的使用
1.test.jade文件 html head style body div.box div#div1 div aaa div(class="aaa left-warp active&quo ...
- Win7系统的任务管理器显示不全
Win7系统的任务管理器显示不全:如下图所示 首先要说明的是:出现这种现象是正常的,因为这种样式是任务管理器的精简模式. 还原方法:双击任务管理器四周的空白边框,即可恢复初始模式. 效果图如下:
- log下一次坑爹的疏忽
今天调试一段十几行的代码,也让我是一顿咒骂...就说说是怎么回事哈哈. 是这样的,这个页面foreach了一个个的div块,每个div里有个a标签,这个按钮绑定了个点击事件.事件走了个ajax,根据返 ...
- Ubuntu忘记密码的解决办法
ubuntu忘记root密码怎么办?如果普通用户忘记了怎么办 第一种方法: 无论你是否申请了root帐号,或是普通账号密码忘记了都没有问题的! 1.重启ubuntu,随即长按shift进入grub菜单 ...
- 20155210 Exp7 网络欺诈防范
Exp7 网络欺诈防范 SET工具建立冒名网站 首先利用lsof -i:80或者netstat -tupln |grep 80查询80端口的使用情况(我的电脑80端口没有被占用,如果被占用,则用kil ...