前面向读者介绍了Elasticsearch的安装和基本配置,同时也向读者介绍了Elasticsearch中的核心概念,相信读者对Elasticsearch的使用已经有了一个初步的了解,接下来,向读者介绍Elasticsearch中的REST命令,这是Elasticsearch提供的一整套强大的REST命令,来实现对集群的操作。接下来向读者详细介绍这个东西。
本文是Elasticsearch系列的第二篇,阅读前面的文章,有助于更好的理解本文:
elasticsearch安装与配置
REST接口
当节点和集群启动后,下一步就是要考虑如何与节点和集群进行通信,幸运的是,Elasticsearch提供了一个非常全面和强大的RESTAPI,开发者利用这个RESTAPI,可以实现与集群之间的交互。这一套RESTAPI主要提供了如下几个功能:
检查集群、节点和通达信接口规范,索引的健康信息、状态以及各种统计信息管理集群、节点、通达信接口规范,索引数据以及元数据对通达信接口规范,索引进行CRUD和搜索操作执行高级的搜索操作,例如分页、排序、过滤、脚本编写、聚合以及其它操作
上面向读者介绍了Elasticsearch提供的RESTAPI所具有的基本功能,接下来,我们就来看看这些基本功能具体如何操作。
集群操作
由于是RESTAPI,读者可以使用POSTMAN,RESTClient等工具完成下面的测试,也可以直接使用curl命令来完成下面的测试。对于一些简单的如GET请求,也可以直接在浏览器中完成测试。
集群健康信息
使用如下命令可以查看集群健康信息:
查看结果如下:
从这个响应中,我们可以看到集群的名称,状态,节点数,分片数等等,其中:
状态有green、yellow和red三种,green表示目前集群运行一切OK,集群功能齐全;yellow表示集群所有数据都是可用的,集群功能也齐全,不过某些复制没有被分配;red则表示集群的部分数据不可用,集群的功能也是不全的,但是集群还是可以运行的,它可以继续处理搜索请求,不过开发者要尽快修复它。另外从响应结果中,我们可以看到一共有一个节点,一个分片等信息。因为我之前已经安装了Kibana,所以这里的信息实际上反应了Kibana的部分信息,读者如果没有安装Kibana,这里的响应结果和我的可能有差异,不过参数含义都是一致的,关于Kibana,我们在后文会向读者介绍。
通过如下请求可以查看节点的详细信息:
请求结果如下:
可以看到,我们的节点名为iFO7DC9
查看所有通达信接口规范,索引
通过如下命令可以查看所有通达信接口规范,索引:
请求结果如下:
从中可以看到集群中通达信接口规范,索引的信息。
创建一个通达信接口规范,索引
接下来,通过如下命令,我们可以创建一个名为customer的通达信接口规范,索引,并重新列出所有通达信接口规范,索引:
curl -X PUT 'localhost:9200/customer?pretty'
curl -X GET 'localhost:9200/_cat/indices?v'
执行结果如下:
请求命令解释:
第一个,通过一个PUT请求,添加了一个名为customer的通达信接口规范,索引,末尾加上pretty参数,表示请求响应的JSON格式化之后打印出来,方便开发者阅读。这是一个通用的参数,当需要格式化响应JSON时,都可以使用这个参数。第二个请求表示查看所有的通达信接口规范,索引,其中就有我们刚刚创建的通达信接口规范,索引customer,该通达信接口规范,索引有5个分片1个复制,没有文档,但是注意该通达信接口规范,索引的status为yellow,根据前文的介绍,黄色表示某些复制没有被分配。这是因为elasticsearch默认为通达信接口规范,索引创建一份复制,而现在只有一个节点在运行,因此复制就分配不了了,当另外一个节点加入到这个集群后才能分配,分配成功后,这个节点的健康状态就会变成绿色。
查询文档
通过如下请求可以添加一个文档:
curl -X PUT 'localhost:9200/customer/_doc/1?pretty' -H 'Content-Type: application/json' -d'
{
'name': 'John Doe'
}'
这个请求表示在customer中的_doc类型中添加一个文档,文档id为该命令执行结果如下:
小贴士:
Elasticsearch中,并不强制要求显式的创建通达信接口规范,索引,即前面案例中,如果开发者在添加文档之前,还没有创建customer通达信接口规范,索引,那么该文档一样也会创建成功的。
通过如下命令可以获取一个文档,最后面的1表示获取id为1的文档:
删除通达信接口规范,索引
通过如下命令可以删除一个通达信接口规范,索引:
curl -X DELETE 'localhost:9200/customer?pretty'
curl -X GET 'localhost:9200/_cat/indices?v'
DELETE请求可以用来删除一个通达信接口规范,索引,该命令执行结果如下:
可以看到,customer通达信接口规范,索引已经被成功删除了。
这里向读者介绍的通达信接口规范,索引操作都是很常规,很简单的操作,后面会向读者介绍复杂的通达信接口规范,索引操作。读者总结上面的RESTAPI格式,可以发现,API格式为:
curl -X ///
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点