Elasticsearch(3)交互
导言Java API节点端运输端-传输端RESTful API With JSON Over Http示例结语导言昨天的文章,讲述了Elasticsearch是什么?以及如何安装?还有还教了安装发送请求的sence,今天则是说明交互的形式介绍。你怎么跟Elasticsearch交互取决于你是否使用的是Java。Java API如果你使用的是Java,你可以使用在代码中使用Elastics
导言
昨天的文章,讲述了Elasticsearch是什么?以及如何安装?还有还教了安装发送请求的sence,今天则是说明交互的形式介绍。
你怎么跟Elasticsearch交互取决于你是否使用的是Java。
Java API
如果你使用的是Java,你可以使用在代码中使用Elasticsearch附带两个内置客户端:
节点端
节点端作为一个非数据节点连接本地集群。换句话说,它并不保存任何数据,但是它知道什么数据存储在集群的哪个结点,并且可以将请求直接发送到正确的节点中。
运输端-(传输端)
可以使用轻量级的运输端将请求发送到远程集群。但它自身并不加入集群,而是简单的将请求发送到集群的一个节点。
Java客户跟集群使用本机Elasticsearch传输协议在9300端口进行通信。集群中的节点还在端口9300上相互通信。如果这个端口不开放,你将无法形成一个集群节点。
小提示
Java客户机作为节点必须来源于相同主版本的Elasticsearch;否则,他们相互间可能无法理解彼此。
RESTful API With JSON Over Http
其他语言与Elasticsearch通信是用你最喜欢的web客户端在端口9200上使用基于RESTful的API来进行。事实上,正如你所见,你甚至可以跟Elasticsearch使用curl命令的命令行。
请注意Elasticsearch为几种语言(Groovy、JavaScript、.NET、PHP、Perl、Python和ruby)提供了官方客户端,有许多社区提供版本的客户端和集成环境,所有这些都可以在Elasticsearch Clients中看见。
后面阶段若有时间,会介绍一下关于Java API调用Elasticsearch。目前只是带入大家入门Elasticsearch,学会基本语法。
任何HTTP请求请求Elasticsearch均包含下列相同的部分:
上面的部分标记< >的参数解释如下:
示例
例如,计算集群中文档的数量,我们可以用这个
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}
'
Elasticsearch返回一个HTTP状态代码200 OK和(HEAD请求除外)一个json编码的响应。前面的curl请求将与一个JSON响应体如下:
{
"count" : 0,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}
比如: (将curl请求复制到sence)
又比如
我们没有看到响应的HTTP头,因为我们没有通过curl来显示它们。为了看到头部信息,使用curl命令和- i选项:
curl -i -XGET 'localhost:9200/'
打开cmd,输入上述的命令,可以看见:
下面,将介绍这些curl的例子使用速记格式即将在每一个请求都是相同的部分,如主机名和端口,和curl命令本身都忽略掉。而不是显示一个完整的请求,比如:
GET /_count
{
"query": {
"match_all": {}
}
}
事实上, 使用sence控制台,你会发现这是相同的格式,。
结语
本篇文章,介绍了java可以使用两种方式进行请求,对http进行curl的请求,进行了示范,给定了一个形式模型,希望各位后面阶段进行请求的时候,多使用sence进行请求。
更多推荐
所有评论(0)