通过HTTP RESTful API 操作elasticsearch

时间:2021-05-22 05:19:27

elasticsearch的HTTP请求包含如下部分:

curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'
  • VERB
    The appropriate HTTP method or verb: GET, POST, PUT, HEAD, or
    DELETE.

  • PROTOCOL
    Either http or https (if you have an https proxy in front of Elasticsearch.)

  • HOST
    The hostname of any node in your Elasticsearch cluster, or localhost for a node on your local machine.
  • PORT
    The port running the Elasticsearch HTTP service, which defaults to 9200.
  • QUERY_STRING
    Any optional query-string parameters (for example ?pretty will pretty-print the JSON response to make it easier to read.)
  • BODY
    A JSON-encoded request body (if the request needs one.)

例如,统计整个集群的文档数:

curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}'

结果:

{
"count" : 49920,
"_shards" : {
"total" : 3,
"successful" : 3,
"failed" : 0
}
}

http请求,返回包含header信息:

curl -i -XGET 'localhost:9200/'

结果:

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 348

{
"status" : 200,
"name" : "Mastermind of the UK",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.2",
"build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec",
"build_timestamp" : "2015-09-14T09:49:53Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
}
,
"tagline" : "You Know, for Search"
}