当前位置: 首页 > news >正文

ElasticSearch5.x实践_day01_04_ElasticSearch增删改查

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

相关文章:

  • PHP 开源框架 MiniFramework 发布 0.10.0 版
  • kdev-ruby 停止开发,原 maintainer 转用其它编辑器
  • 人们对互联网的误解到底有多深?
  • Atlassian发布Bamboo 6.0和Bitbucket Server 5.0
  • 3.文件拷贝
  • 窗口对象被缩放的操作监听
  • 关于开源软件的奇怪经济学
  • JAVA常见算法题(二十五)
  • A10 负载均衡模拟器下载安装及license免费激活详细介绍
  • 学习JAVA,如何从入门到精通
  • VC++ 监视文件(夹)
  • 7-angular.extend
  • 通过mysql-proxy映射外网访问内网数据库
  • DocX开源WORD操作组件的学习系列二
  • js获取屏幕大小,元素top值等等
  • CSS3 变换
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • fetch 从初识到应用
  • go语言学习初探(一)
  • jQuery(一)
  • Linux gpio口使用方法
  • Linux快速复制或删除大量小文件
  • MySQL-事务管理(基础)
  • nodejs调试方法
  • Objective-C 中关联引用的概念
  • React+TypeScript入门
  • spring + angular 实现导出excel
  • Spring声明式事务管理之一:五大属性分析
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 前端之React实战:创建跨平台的项目架构
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入 Nginx 之配置篇
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 延迟脚本的方式
  • 第二十章:异步和文件I/O.(二十三)
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​configparser --- 配置文件解析器​
  • ​ubuntu下安装kvm虚拟机
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (10)ATF MMU转换表
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (七)Java对象在Hibernate持久化层的状态
  • (循环依赖问题)学习spring的第九天
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)Linux下编译安装log4cxx
  • (转)Unity3DUnity3D在android下调试
  • .NET MVC之AOP
  • .NET设计模式(11):组合模式(Composite Pattern)
  • //解决validator验证插件多个name相同只验证第一的问题
  • @WebServiceClient注解,wsdlLocation 可配置
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [AIGC codze] Kafka 的 rebalance 机制