Elasticsearch集群和索引常用命令
来源:互联网 发布:centos os加载u盘 编辑:程序博客网 时间:2024/05/09 20:42
ES通过设置【节点的名字】和【集群的名字】,就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化。
如果用户想要管理查看集群的状态,可以通过一些REST API来实现。
参考文档:http://www.cnblogs.com/xing901022/p/4957543.html
REST API用途
ES提供了很多全面的API,大致可以分成如下几种:
1 检查集群、节点、索引的健康情况
2 管理集群、节点,索引数据、元数据
3 执行CRUD,创建、读取、更新、删除 以及 查询
4 执行高级的查询操作,比如分页、排序、脚本、聚合等
查看集群状态
可以通过CURL命令发送REST命令,查询集群的健康状态:
curl 'localhost:9200/_cat/health?v'
Localhost是主机的地址,9200是监听的端口号,ES默认监听的端口号就是9200.
这里需要注意的是,windows下安装的CURL有可能不支持单引号,如果有报错,还请改成双引号,内部使用转义字符转义。
得到的相应结果。
可以看到集群的名字是默认的"elasticsearch",集群的状态时"green"。这个颜色之前也有说过:
1 绿色,最健康的状态,代表所有的分片包括备份都可用
2 黄色,基本的分片可用,但是备份不可用(也可能是没有备份)
3 红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。
上面的结果还可以看到,目前有一个节点,但是没有分片,这是因为我们的ES中还没有数据,一次也就没有分片。
当使用elasticsearch作为集群名字时,会使用单播,查询本机上是否还运行着其他的节点。如果有,则组成一个集群。
(如果使用其他的名字作为集群名字,那么就可能采用多播了!这个在工作中,经常会遇到,大家使用的是一个集群名字,分片总是被搞在一起,导致有人的机器下线后,自己的也无法使用)
通过下面的命令,可以查询节点的列表:
curl 'localhost:9200/_cat/nodes?v'
查看所有的索引
在ES中索引有两个意思:
1 动词的索引,表示把数据存储到ES中,提供搜索的过程;这期间可能正在执行一个创建搜索的过程。
2 名字的索引,它是ES中的一个存储类型,与数据库类似,内部包含type字段,type中包含各种文档。
通过下面的命令可以查看所有的索引:
curl 'localhost:9200/_cat/indices?v'
得到的结果如下:
curl 'localhost:9200/_cat/indices?v'health index pri rep docs.count docs.deleted store.size pri.store.size
由于集群中没有任何的数据,上面的结果中也就只包含列的信息了。
创建索引
下面是创建索引,以及查询索引的例子:
curl -XPUT 'localhost:9200/customer?pretty'{ "acknowledged" : true}curl 'localhost:9200/_cat/indices?v'health index pri rep docs.count docs.deleted store.size pri.store.sizeyellow customer 5 1 0 0 495b 495b
上面的结果中,customer索引的状态是yellow,这是因为此时虽然有5个主分片和一个备份。但是由于只是单个节点,我们的分片还在运行中,无法动态的修改。因此当有其他的节点加入到集群中,备份的节点会被拷贝到另一个节点中,状态就会变成green。
索引和搜索文档
之前说过,索引里面还有类型的概念,在索引文档之前要先设置类型type。
执行的命令如下:
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{ "name": "John Doe"}'
执行成功后会得到如下的信息:
{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 1, "created" : true}
注意2.0版本的ES在同一索引下,不同的类型,相同的字段名字,是不允许字段类型不一致的。
上面的例子中,为我们创建了一个文档,并且id自动设置为1.
ES不需要再索引文档前,不需要明确的创建索引,如果执行上面的命令,索引不存在,也会自动的创建索引。
执行下面的命令查询,返回信息也如下:
curl -XGET 'localhost:9200/customer/external/1?pretty'{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "name": "John Doe" }}
这里会新增两个字段:
1 found 描述了请求信息
2 _source 为之前索引时的数据
删除索引
执行下面的命令就可以删除索引:
curl -XDELETE 'localhost:9200/customer?pretty'
返回结果:
{ "acknowledged": true}
总结
总结上面涉及到的命令大致如下:
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'//删除索引
- Elasticsearch集群和索引常用命令
- elasticsearch的集群配置更新和索引配置更新
- Elasticsearch(新建索引和文档)
- 使用协处理器将HBase数据索引到Elasticsearch集群
- spring data elasticsearch在集群新建了索引出现unsigned
- 定期删除elasticsearch集群10天以上的索引
- ElasticSearch集群的安装和配置
- elasticsearch 集群
- elasticsearch集群
- Elasticsearch集群
- elasticsearch 集群
- Elasticsearch 常用命令
- 【Elasticsearch】深入Elasticsearch集群
- Elasticsearch索引别名的介绍和操作
- ElasticSearch的多索引和多类别
- Elasticsearch索引别名的介绍和操作
- elasticsearch 简介和创建索引初步
- Elasticsearch索引别名的介绍和操作
- 《结网》互联网产品经理改变世界 王坚
- Windows下ElasticSearch的使用方式 CURL+Cygwin+Head插件
- ElasticSearch聚合aggs入门
- ElasticSearch聚合入门(续)
- ElasticSearch入门知识扫盲
- Elasticsearch集群和索引常用命令
- ElasticSearch中Filter和Query的异同
- 热乎的新鲜出炉的bug----checkbox反选问题
- linux input系统的分析笔记(一)
- js基础之冒泡和捕获机制
- java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null
- Angular2中ViewChild与ContentChild的区别
- 这么几个小故事,别想歪,看似色情却暗藏了人生的哲理。
- MPEG2、MPEG4、H264的差异