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的更多相关文章

  1. elasticsearch中的API

    elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...

  2. Elasticsearch利用cat api快速查看集群状态、内存、磁盘使用情况

    使用场景 当Elasticsearch集群中有节点挂掉,我们可以去查看集群的日志信息查找错误,不过在查找错误日志之前,我们可以通过elasticsearch的cat api简单判断下各个节点的状态,包 ...

  3. Elasticsearch for python API模块化封装

    Elasticsearch for python API模块化封装 模块的具体功能 检测Elasticsearch节点是否畅通 查询Elasticsearch节点健康状态 查询包含的关键字的日志(展示 ...

  4. Springboot整合elasticSearch的官方API实例

    前言:在上一篇博客中,我介绍了从零开始安装ElasticSearch,es是可以理解为一个操作数据的中间件,可以把它作为数据的存储仓库来对待,它具备强大的吞吐能力和计算能力,其基于Lucene服务器开 ...

  5. Elasticsearch中JAVA API的使用

    1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...

  6. elasticsearch【cat API,系统数据】指令汇总

    本博文讲述的ES获取系统数据的API是基于Elasticsearch 2.4.1版本的. 0. overview a. 下面将要介绍的所有的指令,都支持一个查询参数v(verbose),用来显示详细的 ...

  7. Elasticsearch使用REST API实现全文检索

    通过rest api添加检索数据,阅读官方文档可以发现,elasticsearch支持动态映射,但是其中有不少问题,且听慢慢详解. 本文主要讲述三点内容: 1 Elasticsearch常用的rest ...

  8. 【重新分配分片】Elasticsearch通过reroute api重新分配分片

    elasticsearch可以通过reroute api来手动进行索引分片的分配. 不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation ...

  9. elasticsearch 6.0java api的使用

    elasticsearch 6.0 中java api的使用 1:使用java api创建elasticsearch客户端 package com.search.elasticsearch; impo ...

随机推荐

  1. [SQL123] Oracle SQL 统计一定时间间隔内的数据

    --Group by State_ts "per X minutes"select to_char(state_ts, 'hh24')||':'||floor(to_char(st ...

  2. oracle 批量更新merge语句

    merge into (SELECT * FROM QUERY_DB1.test_MPOS  ) T1 using (SELECT FLAG FLAG1,IN_MNO FROM QUERY_DB1.t ...

  3. table border

    table的CSS为{border-collapse:collapse;border:none;},再设置td的CSS为{border:solid#000 1px;}是一个非常不错的方法. 示例: & ...

  4. oninput和onpropertychange实时监听输入框值的变化

    oninput和onpropertychange实时监听输入框值的变化 传统监听输入框的做法就是使用keyup.keydown.keypress,或者change事件来实现,但keyup.keydow ...

  5. form表单,submit,ajax提交

    尼玛... 一个简单的表单提交,竟然给我整的直郁闷. 本来就是个保存功能,几个前人都用的ajax提交,我也就没改成submit.然后坑爹的就来了. 我在表单里写了个<form></f ...

  6. 反向路径过滤——reverse path filter

    原文地址:反向路径过滤——reverse path filter 作者:pwp_cu 反向路径过滤——reverse path filter 一.原理先介绍个非对称路由的概念参考<Underst ...

  7. 虚拟机上不能使用CUDA

    虚拟机的显卡是虚拟的,不能使用CUDA(至少很难),搞了一天才晃过神来: lspci 查找目前主机的硬件配备 用 grep -i 进行大小写无关的搜索

  8. 【MongoDB】MongoDB的下载 安装 配置及使用

    windows系统  教程 1.下载地址   (官方提供根据系统位数选择对应的bit.exe下载) 由于自己win32系统不支持该官方版本,在网上又找了个 mongodb-win32-i386版本 p ...

  9. 20155210 实验一 逆向与Bof基础

    20155210 实验一 逆向与Bof基础 实验内容 1.直接修改程序机器指令,改变程序执行流程 下载目标文件pwn1,反汇编 利用objdump -d pwn1对pwn1进行反汇编 得到: 8048 ...

  10. EZ 2018 04 21 NOIP2018 模拟赛(九)

    终于停止了掉Rating的浪潮! 猥琐的链接 这次200分才Rank10,而且很多人并列 庆幸T2最后20分钟发现期望的算法打错了,然后拿到了50pts,250收场 T1 水题*1 这道题不仅做过,而 ...