百度智能云Elasticsearch Restful API
文档简介:
Elasticsearch采用REST API, 所有的操作都可通过HTTP API完成,例如增删改查、别名配置等。本文介绍Restful API的使用方法。
Elasticsearch官方参考文档:
单文档 API:
Index、
Get、
Delete、
Update。
Elasticsearch采用REST API, 所有的操作都可通过HTTP API完成,例如增删改查、别名配置等。本文介绍Restful API的使用方法。
Elasticsearch官方参考文档
-
单文档 API:
- Index
- Get
- Delete
- Update
-
多文档 API:
- Multi Get
- Bulk
- Delete By Query
- Update By Query
- Reindex
使用REST Client交互
客户端访问仅支持HTTP / TCP方式,建议您采用Elasticsearch官方提供的Elasticsearch client。
说明: Elasticsearch官方还提供了多种程序语言的客户端,例如EGroovy、Javascript、.NET、PHP、Perl、Python以及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方法,包括GET、POST、PUT、HEAD、DELETE等。 |
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
}
}