与Elasticsearch交互
任何其他语言都可以使用你喜欢的网页客户端可以访问的RESTful API通过9200端口和 Elasticsearch通信。实际上,你甚至可以从命令行通过curl命令(当然你要去了解一下curl命令)和Elasticsearch通信。
Elasticsearch给几种语言提供了官方的客户端,例如:java、python、.net、php等而我们这里所要介绍的就是通过RESTful API的形式与Elasticsearch进行交互。
curl -XGET 'http://localhost:9200/_count?pretty'
-d '
{
"query": {
"match_all": {}
}
}
'
说明:
- -XGET适当的HTTP方法或者动作 : GET、POST、PUT、HEAD或者DELETE;
- http:.........:9200表示集群任意节点的协议、主机名和端口;
- _count表示请求的路径;
- pretty任意可选的查询字符串参数,比如pretty将会漂亮的打印JSON格式的响应使它更容易阅读;
- -d表示 HTTP POST方式传输数据;
- {}中的部分表示JSON格式的请求包体(我们后面会常用这种形式);
- query表示JSON格式的请求包体中的查询关键字;
- _matchall表示JSON格式的请求包体中的要查询的字段。
Elasticsearch返回一个像 200 OK 的状态码和一个JSON格式的响应(HEAD请求除外)。
上面的curl请求将返回一个如下的JSON格式的响应:
{
"count" : 0,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}