1.1.3 探索你的集群(Exploring Your Cluster)

来源:互联网 发布:幼儿园区域阅美工图片 编辑:程序博客网 时间:2024/06/13 06:32

探索你的集群(Exploring Your Cluster)  原文链接  翻译:AbnerGong

THE REST API
既然我发已经启动了我们的节点,下一步是理解如何与它交流。幸运的是,Elasticsearch提供了一个非常全面并且强大的REST API使得你能用它与你的集群交互(interact)。使用API可以做的事情包括:
1. 检查你的集群,节点,和索引健康(health),状态以及统计结果(statistics)
2. 管理你的集群,节点和索引数据以及元数据
3. 执行CRUD(Create,Read,Update,and Delete)并且针对你的索引搜索操作(search operations)
4. 执行高级搜索操作诸如paging, sorting, filtering, scripting, aggregations以及其他。



【注意】关于Rest API的访问工具  作者:AbnerGong

接下来的测试全部是通过Rest API与集群进行交互的,而访问Rest API用什么工具呢?下面教程的样例使用的都是Linux中的curl
如果你和我一样使用Windows,那么推荐使用Sense编辑器,这是官方推荐的编辑器,虽然官方文档上比较麻烦而且装完我还找不到,但是幸运的是Chrome浏览器有Sense插件(感谢huangfox的博文),能够很容易地安装,下文中官方文档使用curl的地方,我会补充sense的语句,便于使用sense的人学习。

如果你要使用各种编程语言来访问,那么请参考Elasticsearch客户端,它支持Java, JavaScript, Groovy, .NET, PHP, Perl, Python, Ruby。



集群健康(Cluster Health) 原文链接  翻译:AbnerGong

我们开始基本的健康检查,我们可以用它看到我们的集群正在如何做事情。我们将用要curl做这个,但是你也可以用任何工具,允许HTTP/REST calls的都可以。我们假设我们仍然在启动Elasticsearch相同的节点上,并打开另一个命令行窗口
为了检查集群健康,我们将要使用_cat API。记得之前我们的节点HTTP端点在9200可用:

#如果你使用curl请使用第一句:curl 'localhost:9200/_cat/health?v'  #使用curl#如果你使用sense请使用下一句:地址localhost:9200写在Server中故省略,后文不再赘述GET _cat/health?v #使用sense

返回结果是:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign1394735289 14:28:09  elasticsearch green           1         1      0   0    0    0        0

我们能看到我们的集群名称为”elasticsearch”是绿色状态开启
无论何时我们请求集群健康,我们可能得到绿、黄、红。绿意味着一切正常(集群具有完全功能fully functional),黄色意味着所有数据可用但是一些碎片还没分配(集群具有完全功能),而红色意味着一些数据不可用因为一些原因(for whatever reason)。注意到即使集群是红色,它仍然是有部分功能的(即它将会继续提供搜索请求服务在某些碎片上)但是你将会可能需要修复它ASAP因为你有丢失的数据。

继续看上述反馈信息(respone),我们能看到总共1个节点并且我们有0个碎片因为我们还没有数据在里面。注意到因为我们正在使用默认集群名而且因为Elasticsearch使用单播网络发现(unicast network),默认寻找同一台电脑中的其他节点,有可能你启动其他节点在你的电脑上,然后把它们添加到一个单独的集群中。在这种情形下(in this scenario),你可能看到多于1个节点在上述反馈中。

我们也能得到一个在我们的集群中的节点列表用如下方法:

curl 'localhost:9200/_cat/nodes?v'  #使用curl或GET _cat/nodes?v #使用Sense

以及这个反馈信息:

host         ip        heap.percent ram.percent load node.role master namemwubuntu1    127.0.1.1            8           4 0.00 d         *      New Goblin

这里我们能看到我们的一个节点叫做”New Goblin”,这是当前在我们集群中的单个节点。



列出所有索引(List All Indices)  原文链接  翻译:AbnerGong

现在来一览我们的索引:

curl 'localhost:9200/_cat/indices?v' #使用curl或GET _cat/indices?v  #使用Sense

反馈信息是:

curl 'localhost:9200/_cat/indices?v'health index pri rep docs.count docs.deleted store.size pri.store.size

简单地意味着我们在集群中还没有节点



创建一个索引(Create an Index) 原文链接  翻译:AbnerGong

现在让我们放一些东西到我们的customer索引中。记得之前为了索引一个文档我们必须告诉Elasticsearch在这个索引中它应该是什么类型的。

让我们索引一个简单的customer文档到customer索引中,”外部”类型,其ID为1:
我们的JSON文档:{“name”:”John Doe}

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{  "name": "John Doe"}'    #使用curl,这里-d是post data的意思或POST customer/external/1?pretty{  "name": "John Doe"}   #使用sense,用PUT和POST貌似都行尚不清楚

然后得到返回结果(response)为:

{  "_index" : "customer",  "_type" : "external",  "_id" : "1",  "_version" : 1,  "created" : true}

根据如上结果,我们能看到一个想的顾客文档成功的在索引和外部类型中创建了。文档也有内部id为1是我们索引的时候指定的。

我们要注意到Elasticsearch不需要你去明确地创建一个索引在你能索引文档到里面以前。在前面的杨立忠,Elasticsearch将会自动地创建customer索引如果它之前(beforehand)从来没存在过。

我们现在取回我们刚刚索引的文档:

curl -XGET 'localhost:9200/customer/external/1?pretty' #使用curl或GET customer/external/1?pretty #使用Sense

返回结果为:

{  "_index" : "customer",  "_type" : "external",  "_id" : "1",  "_version" : 1,  "found" : true,   "_source" : {     "name": "John Doe"   }}

这里没有什么特别的地方(Nothing out of the ordinary here),只有一个域found表示我们找到一个请求ID为1的文档和另一个域_source,返回了我们在上一步索引过的全部JSON文档



索引并查询一个文档(Index and Query a Document)  原文链接  翻译:AbnerGong

现在让我们放一些东西到我们的customer索引中。记得之前为了索引一个文档我们必须告诉Elasticsearch在这个索引中它应该是什么类型的。

让我们索引一个简单的customer文档到customer索引中,”外部”类型,其ID为1:
我们的JSON文档:{“name”:”John Doe}

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{  "name": "John Doe"}' #使用curl或POST customer/external/1?pretty{  "name": "John Doe"} #使用Sense

然后得到返回结果(response)为:

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{  "name": "John Doe"}'{  "_index" : "customer",  "_type" : "external",  "_id" : "1",  "_version" : 1,  "created" : true}

根据如上结果,我们能看到一个想的顾客文档成功的在索引和外部类型中创建了。文档也有内部id为1是我们索引的时候指定的。

我们要注意到Elasticsearch不需要你去明确地创建一个索引在你能索引文档到里面以前。在前面的杨立忠,Elasticsearch将会自动地创建customer索引如果它之前(beforehand)从来没存在过。

我们现在取回我们刚刚索引的文档:

curl -XGET 'localhost:9200/customer/external/1?pretty'

返回结果为:

curl -XGET 'localhost:9200/customer/external/1?pretty'{  "_index" : "customer",  "_type" : "external",  "_id" : "1",  "_version" : 1,  "found" : true, "_source" : { "name": "John Doe" }}

这里没有什么特别的地方(Nothing out of the ordinary here),只有一个域found表示我们找到一个请求ID为1的文档和另一个域_source,返回了我们在上一步索引过的全部JSON文档



删除一个索引(Delete an Index)  原文链接  翻译:AbnerGong

现在我们删除刚刚创建的索引然后再列出所有索引:

curl -XDELETE 'localhost:9200/customer?pretty'curl 'localhost:9200/_cat/indices?v'或DELETE customer?pretty #用SenseGET _cat/indices?v  #用Sense

返回结果为:

curl -XDELETE 'localhost:9200/customer?pretty'{  "acknowledged" : true}curl 'localhost:9200/_cat/indices?v'health index pri rep docs.count docs.deleted store.size pri.store.size

意味着索引已经被成功删除,我们现在回到集群什么都没有的初始状态
在我们继续(move on)前,让我们再细看(take a closer look)一下我们迄今为止已经学过的所有API命令:

curl -XPUT 'localhost:9200/customer'curl -XPUT 'localhost:9200/customer/external/1' -d '{  "name": "John Doe"}'curl 'localhost:9200/customer/external/1'curl -XDELETE 'localhost:9200/customer'

或Sense命令

GET _cat/indices?v #获取所有索引信息PUT customer #创建索引PUT customer/external/1?pretty #插入数据到某索引/某类/某序号{  "name": "John Doe"}GET customer/external/1 #取回数据

如果我们仔细地学习了如上命令,我们就能看到我们如何访问Elasticsearch中的数据的模式。那种模式可以总结为如下形式:

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

这个REST访问模式是普遍(pervasive throughout)适用于所有API命令的,如果你能记住它,掌握Elasticsearch就会有一个好的开始(have a good head start).

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 实体店买到苹果翻新机怎么办 小米手环2米粒掉怎么办 小米字体下架了怎么办 京东白条被锁定怎么办 苹果6splus很卡怎么办 苹果6s卡槽坏了怎么办 在京东买的电脑没发票怎么办 京东上买的空调没发票怎么办 分期手机被坑了怎么办 京东退货发票丢了怎么办 买东西的发票丢了怎么办 淘宝买东西发票丢了怎么办 网上买的手机没有发票怎么办 网上买的手机没发票怎么办 手机店花呗分期额度不够怎么办 买了手机没有开票怎么办 在京东上买苹果手机没有发票怎么办 买到苹果演示机怎么办 京东白条借不了怎么办 买了东西不给退怎么办 邮政储蓄银行买东西多扣钱了怎么办 快递送错地方了怎么办 菜鸟驿站超过5天怎么办 消费者买到不合格产品怎么办 如果买到不合格的产品怎么办 买到不合格的种子怎么办 买到不合格的空调怎么办 买到不合格的家具怎么办 灭火器买到不合格产品怎么办 路边买到假手机怎么办 网上买的手机屏幕碎了怎么办 天猫订单删除了怎么办 华为入职预约满怎么办 三星c5玩王者荣耀卡怎么办 三星s8背部碎了怎么办 保修期内发动机坏了怎么办 6s主板进水了怎么办 新买的狗晚上叫怎么办 官网手机坏了怎么办 小米商城买手机不发货怎么办 小米商城分期额度不够怎么办