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 ...
随机推荐
- Volley源码分析(二)CacheDispatcher分析
CacheDispatcher 缓存分发 cacheQueue只是一个优先队列,我们在start方法中,分析了CacheDispatcher的构成是需要cacheQueue,然后调用CacheDisp ...
- CentOS7.5搭建Flask环境python3.6+mysql+redis+virtualenv
wget安装环境装备 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncur ...
- Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)
Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的 ...
- win10下nvidia控制面板看不到
64位win10,nvidia控制面板看不到,控制面板里没有,服务里也没有nvidia相关服务,但驱动已经安装了. 解决办法: 1.下载GeForce Experience并安装 . 2.通过GeFo ...
- 多模匹配算法之Aho-Corasick
除剔除那些含有敏感词的文本,由于有大量的敏感词,所以通过简单的正则表达式和字符串查找的方式效率太低,每次都有遍历一次字符串.而AC算法的核心思想就是避免不必要的回溯使搜索一直沿着向前的方向,最大可能的 ...
- Linux常用系统信息查看命令
[转]http://yulans.cn/linux/linux%E5%B8%B8%E7%94%A8%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C ...
- odoo销售转生产
<!--form view 一个form视图足以--><record id="view_sale_tomrp_form" model="ir.ui.vi ...
- Ubuntu系统上双节点部署OpenStack
安装和部署双节点OpenStack 介绍: 1.宿主机:Win10操作系统 2.在VMware下创建两台虚拟机: devstack-controller:控制节点 + 网络节点 + 块存储节点 + 计 ...
- Android Studio常用快捷键 - 转
Android Studio常用快捷键 1. Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的 ...
- 20155331《网络对抗》Exp5 MSF基础应用
20155331<网络对抗>Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode 答:exploit就是漏洞利用.exploit就是利用 ...