如何与es交互

如何与es交互取决于你是否使用Java,这里默认我们都是使用Java语言的。es为Java用户提供了两种内置的客户端。

节点客户端(node client):
节点客户端是以无数据节点的身份加入到集群中,即它本身并不存储数据。但是它知道数据在集群中的位置,并且能够直接转发请求到对应的节点上。

传输客户端(Transport client) :
这个更轻量级的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群客户端。

需要说明的是,两个Java客户端都通过9300端口与集群进行交互,使用es自己的传输协议。集群中的节点之间也通过9300端口进行通信。如果此端口未开放,你的节点将不能组成集群。

Java客户端所在的es版本必须与集群中其他的节点一致,否则,它们可能相互无法识别。

如果不是基于客户端的交互,该怎么办呢?es还为我们提供了基于http协议——以json为数据交互格式的restful API。通过9200端口与es进行通信,你甚至可以通过curl命令与es通信。

curl -x '://:/PATH?' -d ''

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

总结一下就是大概有三种交互方式。两种是客户端(9300),一种是restful接口(9200)。

你可能感兴趣的:(如何与es交互)