(3)与 Elasticsearch 交互

如何与 Elasticsearch 交互取决于你是否使用 Java。

Java API

Elasticsearch· 为 Java 用户提供了两种内置的客户端。

节点客户端(node client)

节点客户端以无数据节点(none data node)身份加入集群。换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。

传输客户端(Transport client)

这个更轻量级的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。
两个 Java 客户端都通过9300端口与集群交互,使用 Elasticsearch 传输协议(Elasticsearch Transport Protocol)。集群中的节点之间也通过 9300 端口进行通信。如果此端口未开放,你的节点将不能组成集群。
注意:Java 客户端所在的 Elasticsearch 版本必须与集群中的其他节点一致,否则,它们可能互相无法识别。

基于 HTTP 协议,以Json为数据交互格式的Restful API

其他所有程序语言都可以使用Restful API,通过 9200 端口与 Elasticsearch 进行通信,你可以使用你喜欢的 WEB 客户端,事实上,如你所见,你甚至可以通过 curl 命令与 Elasticsearch 通信。

向 Elasticsearch 发出的请求的组成部分与其他普通的HTTP请求是一样的:

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>'  -d '<BODY>'

VERB HTTP 方法:GET POST PUT HEAD DELETE
PROTOCOL http 或者是 https 协议(只有在 Elasticsearch 前面有https代理的时候可用)

猜你喜欢

转载自blog.csdn.net/Enjolras_fuu/article/details/81917161