ElasticSearch5.x实践_day01_04_ElasticSearch增删改查

ES的聚合项目:有相关基于ElasticSearch5.6v Java API 的各种用法

源码地址: GitHub

ElasticSearch集群健康状况

让我们以一个基础的健康检查开始,用这个检查我们可以得知我们的集群工作状态如何。咱们来使用curl做这个检查,不过你也可以使用任何能发起HTTP/REST请求的工具来做这个练习。假设我们仍旧在启动Elasticsearch的节点(服务器)上,打开另外一个命令行终端。

要检查集群健康状况,我们将使用_cat API. 你可以在终端控制台运行下面的命令

curl -XGET '192.168.1.171:9200/_cat/health?v&pretty'

或者直接在浏览器中打开地址:http://192.168.1.171:9200/_cat/health?v

184221_MZcQ_3101476.png

由此我们可以得知,我们的名为elasticsearch 的集群已经启动并且为绿色状态。
无论何时(用上面的命令)检查集群健康状态,我们都将得到绿色、黄色或者红色这几种。绿色表示一切运行良好(集群全功能可用),黄色表示所有的数据可用但是一些副本还未分配(集群功能工作良好),红色表示因为某种原因某些数据不可用。注意及时某个集群是红色的状态,它的部分功能仍旧可用(例如它将继续在可用的分片上为搜索请求提供服务检索服务)。但是你最好尽快修复问题因为有数据丢失了。

从上面的查询反馈我们也可以得知,目前总计有一个节点,0个分片和0条数据。注意,由于我们使用了更改后的集群名称(zhubo)并且Elasticsearch使用单播网络发现同一台服务器上的其他节点,所以很有可能我们会意外的启动多余一个节点,且它们会加入同一个集群。这种情况下,你可能会在上面的反馈信息中看到多余一个节点。我们也可以通过下面的命令获取节点列表:

GET /_cat/nodes?v

或者直接访问地址:http://192.168.1.171:9200/_cat/nodes?v  

返回结果:

184354_oSvV_3101476.png

ElasticSearch查看索引列表

使用下面的命令可以查看所有的索引:

GET /_cat/indices?v

或直接在浏览器中打开连接: http://192.168.1.171:9200/_cat/indices?v

184700_rjTM_3101476.png

标识集群中还没有创建任何索引

ElasticSearch创建索引

创建一个名为“customer”的索引,然后查看集群中的所有索引:

PUT /customer?pretty
GET /_cat/indices?v

请注意提交的Rest模式

第一个命令使用PUT创建了一个名为customer的索引。我们简单的在命令后追加了一个pretty参数,用于将JSON类型的返回值格式化后打印在控制台。

我们也可以使用POST MAN操作,我们会得到类似下图所示的返回结果:

185236_bTGE_3101476.png

第二个命令的结果告诉我们,现在我们有了一个名为customer的索引,它有5个主分片和1个副本(默认),并且当前该索引包含0个文档。http://192.168.1.171:9200/_cat/indices?v

185432_m1AU_3101476.png

http://192.168.1.171:9200/_cat/health?v

185510_YKtC_3101476.png

每个Elasticsearch中的每个索引被默认分配了5个主分片和一个副本(节点),也就是说如果在你的集群中有两个节点,那么你的索引将会有5个主分片和5个副本分片(一个完整副本)共计10个分片。

(结果也可能为customer索引当前为黄色(yellow)状态。回顾咱们之前的知识黄色(yellow)表示某些副本还未被分配。导致如此的原因是Elasticsearch默认只为索引创建一个副本。因为我们当前只有一个节点在运行,所以副本在额外的节点加入当前集群前是无法被分配的。只要该副本被分配到第二个节点上,该索引的运行状态将会变成绿色(green)

185820_XywO_3101476.png)

ElasticSearch检索文档

在customer索引中放一些文档。记得先前,为了索引一个文档我们必须告诉Elasticsearch该文档要被索引的类型。 现在简单的在customer索引中创建一个customer文档,使用“external”类型,ID设置为1. 使用下面的命令:

PUT /customer/external/1?pretty
{
  "name": "John Doe"
}

或者使用POST MAN:

191035_K1e0_3101476.png

得到返回结果:

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}

从上面的结果我们得知一个新的external类型的customer文档被成功创建在了customer索引中。该文档的内部ID为1,是我们在建立索引的时候指定的。

有重要的一点需要注意的是Elasticsearch并不要求我们再索引一个文档前必须创建一个索引。 在前面的例子,Elasticsearch会自动创建一个customer索引,加入customer索引并不存在。

现在让咱们来读取刚刚索引的文档:

GET /customer/external/1?pretty

191328_YHWn_3101476.png

需要特殊说明的是返回值中的属性found,告诉我们找到了一个与我们给定的ID匹配的文档。以及_source属性返回了我们之间索引的完整的JSON文档。

ElasticSearch删除索引

删除刚刚创建的索引并查看全部索引列表,使用下面的命令(注意Rest 模式):

DELETE /customer?pretty
GET /_cat/indices?v

返回:

health status index uuid pri rep docs.count docs.deleted store.size pri.store.size

上面的结果表示索引被成功删除了,我们回到了最初集群中数据一无所有的状态。
在继续之前,让我们
仔细看看迄今为止我们学到的命令:

PUT /customer
PUT /customer/external/1
{
"name": "John Doe"
}
GET /customer/external/1
DELETE /customer

如果仔细研究上面的命令,不难发现在Elasticsearch中访问数据的模式,该模式可被总结如下:

REST Verb> /<Index>/<Type>/<ID>

 

 

 

 

 

 

转载于:https://my.oschina.net/LucasZhu/blog/914218

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值