Elasticsearch Restful API
所有文档

          Elasticsearch BES

          Elasticsearch Restful API

          Elasticsearch采用REST API, 所有的操作都可通过HTTP API完成,例如增删改查、别名配置等。本文介绍Restful API的使用方法。

          Elasticsearch官方参考文档

          使用REST Client交互

          客户端访问仅支持HTTP / TCP方式,建议您采用Elasticsearch官方提供的Elasticsearch client

          说明: Elasticsearch官方还提供了多种程序语言的客户端,例如EGroovyJavascript.NETPHPPerlPython以及Ruby以及很多由社区提供的客户端和插件,您可以在Community Contributed Clients中获取。

          使用Java API交互

          Elasticsearch为Java用户提供了内置客户端,包括TransportClient和Java REST Client。Elasticsearch 7.0中已经弃用TransportClient,在8.0中完全移除它。因此在实际开发中建议您使用Java REST Client。

          • Java Low Level REST Client:Elasticsearch的官方低级客户端,允许通过http与Elasticsearch集群进行通信,需要使用者对http的请求进行编解码。它与所有Elasticsearch版本兼容。
          • Java High Level REST Client:Elasticsearch的官方高级客户端,基于Low Level REST Client开发,它提供了更多的API,接受请求对象作为参数并返回响应对象,由客户端自己处理编码和解码。使用时需要注意,客户端版本需要与Elasticsearch版本相同。

          RESTful API请求参数说明

          您可以使用RESTful API或者curl命令,通过8200端口与Elasticsearch进行通信。

          curl命令(HTTP)由以下几部分组成。

          curl -u <USER:PWD> -H<HEADER> -X<METHOD> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
          参数 说明
          USER:PWD -u参数为baidu Elasticsearch的用户名密码,例如:superuser:mypassword,如果使用HTTP Basic认证方式则不需要加-u参数
          HEADER HTTP请求头,例如:"Content-Type: application/json"
          METHOD HTTP方法,包括GETPOSTPUTHEADDELETE等。
          PROTOCOL http或者https协议。
          HOST Elasticsearch的主机名。
          PORT Elasticsearch HTTP服务所在的端口,默认为8200
          PATH API路径(例如/_cluster/health或者_cat/nodes等)。
          QUERY_STRING 可选的查询请求参数,例如?pretty参数可使请求返回的JSON数据更加美观易读。
          BODY JSON格式的请求主体(可选)。

          RESTful API(HTTP)请求示例

          通过以下命令,统计Elasticserach集群中doc的数量。

          curl -u user:password --header 'Content-Type: application/json' -XGET 'http://host:port/_count' -d '
          { 
            "query": { 
              "match_all": {} 
            }
          }'

          返回结果如下。

          {
             "count": 1646413284,
             "_shards": {
                "total": 1147,
                "successful": 1147,
                "skipped": 0,
                "failed": 0
             }
          }
          上一篇
          用户手册
          下一篇
          Elasticsearch Java客户端