这部分描述 elasticsearch 提供的 REST API接口,使用数据格式主要是Json. API 接口通过以下方式暴露 HTTP , thrift, memcached.
节点
大部分集群级别的API接口都允许在指定的节点上执行, (如获取某个节点的状态). 节点可以通过其内部id, 节点名, 节点ip地址, 自定义属性, 或只是通过 _local
(本地节点)来定位并接受请求. 例如, 这里是一个获取节点信息的操作:
# Local curl localhost:9200/_cluster/nodes/_local # Address curl localhost:9200/_cluster/nodes/10.0.0.3,10.0.0.4 curl localhost:9200/_cluster/nodes/10.0.0.* # Names curl localhost:9200/_cluster/nodes/node_name_goes_here curl localhost:9200/_cluster/nodes/node_name_goes_* # Attributes (set something like node.rack: 2 in the config) curl localhost:9200/_cluster/nodes/rack:2 curl localhost:9200/_cluster/nodes/ra*:2 curl localhost:9200/_cluster/nodes/ra*:2*
选项
输出结果格式化
当给任意request类型的请求附加参数 ?pretty=true
后, 输出的JSON结果会是预先格式化好的(拥有良好缩进的JSON,主要是用于调试方便).
参数
Rest 参数 (如果使用 HTTP 协议, 隐射为 HTTP 的URL parameters参数) 约定都使用下划线来标示.
布尔值
所有的 REST APIs 的参数 (包括请求参数和body) 布尔值 “false” 等同于: false
, 0
和 off
. 所有的其他值都被认为是 “true”. 注意, 这并不是索引文档里判断某个字段是否为布尔字段的标准.
数值
所有的 REST APIs 都支持JSON原生的数字类型,并且允许将数值当作 string
来处理.
结果大小写
所有 REST APIs 允许接受一个参数 case
. 当该参数设置为 camelCase
, 所有返回字段的名称都会以驼峰式大小写风格(camel casing), 否则, 默认使用下划线. 注意, 这里并不会影响索引文档里面的字段(只是影响自带字段如: _id, _index等).
JSONP
所有 REST APIs 接受一个 callback
参数来生成 JSONP 输出.
你也可以使用参数 source
作为query_string(补充:即GET方式)来代替POST请求对应的body部分.