ES 常用Linux查询命令汇总

2020-09-27 10:44:31 浏览数 (4)

一、_cat操作

_cat系列提供了一系列查询elasticsearch集群状态的接口。你可以通过执行

代码语言:javascript复制
curl -XGET 'localhost:9200/_cat'
=^.^=  获取所有_cat系列的操作  =^.^=
代码语言:javascript复制
/_cat/allocation
提供集群各个节点的分片数量(包括主分片及副分片)以及其占用磁盘空间大小的快照
代码语言:javascript复制
/_cat/shards
/_cat/shards/{index}
详细的描述了节点包含的分片信息。它将告诉您它是一个主分片还是一个副本,和文档的数量,硬盘上占用的大小,以及节点所在的位置。
代码语言:javascript复制
/_cat/master
简单展示了 master 的 node ID(节点 ID),bound IP address(绑定的 IP 地址)和 node name(节点名)。
代码语言:javascript复制
/_cat/nodes
展示了集群拓扑结构,前几列告诉您可用的节点并且描述了一下 heap(堆),memory(内存),cpu,和 load(平均负载)
代码语言:javascript复制
/_cat/indices
/_cat/indices/{index}
提供了每一个索引的 cross-section(横截面)。这些信息跨越了多个节点。我们可以很快的知道一个索引的分片数量,Lucene 级别的文档数量,包括隐藏的文档(例如,嵌套的类型),已删除的文档,主存储的大小,和总存储大小(包括副本在内的所有分片)。这些暴漏的 metric(度量)直接来自 Lucene API。
代码语言:javascript复制
/_cat/segments
/_cat/segments/{index}
提供了在一个索引分片中关于 segment(段)更低级别的信息
代码语言:javascript复制
/_cat/count
/_cat/count/{index}
提供了快速获取整个集群,或者单独的索引的文档的数量的功能
代码语言:javascript复制
/_cat/recovery
/_cat/recovery/{index}
一个索引分片恢复的视图,包括恢复中的和先前已完成的
代码语言:javascript复制
/_cat/health
 是一个简洁的,一行表示了来自 /_cluster/health 的相同的信息
代码语言:javascript复制
/_cat/pending_tasks
返回集群层面的,现在还没有开始执行的任务
代码语言:javascript复制
/_cat/aliases
/_cat/aliases/{alias}
显示目前为索引配置的别名,包括 filter (过滤器)以及 routing infos (路由信息)的相关信息
代码语言:javascript复制
/_cat/thread_pool
返回集群中各个节点的的线程池数据状态,如活跃的数目、排队的数目、拒绝的个数
代码语言:javascript复制
/_cat/plugins
提供了一个每一个节点所运行插件的视图
代码语言:javascript复制
/_cat/fielddata
/_cat/fielddata/{fields}
显示了当前集群中每个数据节点上被 fielddata 所使用的堆内存大小
所有字段是默认被 indexed(被索引的),这使得它们是可搜索的.可以在脚本中排序,聚合和获取字段值,但是需要不同的搜索模式.

搜索需要回答一个问题 “哪个 document(文档) 包含这个 term(词条)”,然而排序和聚合需要回答一个不同的问题 " 这个字段在这个 document(文档)中的值是多少?".

许多字段可以使用 index-time,在磁盘上的 doc_values 支持这种数据访问模式, 但是 text 字段不支持 doc_values。

相反,text 字段使用查询时存在于内存的数据结构 fielddata.这个数据结构是第一次将字段用于聚合,排序,或者脚本时基于需求构建的。它是通过读取磁盘上的每个 segment(片段)的整个反向索引来构建的,将 term(词条)和 document(文档)关系反转,并将结果存储在内存中,在JVM的堆中.

text 字段默认关闭 Fielddata
Fielddata 会消耗很多堆空间,尤其是加载高基数的 text 字段的时候.一旦 fielddata 加载到堆中,它在  segment(片段)中的生命周期还是存在的.此外,加载  fielddata 是一件非常昂贵的过程,会导致用户体验到延迟的感觉.这就是为什么 fielddata 默认关闭.

以上的命令中,你也可以后面加一个?v,让输出内容表格显示表头,比如curl -XGET ‘localhost:9200/_catallocation?v’

二:_cluster系列

1、查询设置集群状态
代码语言:javascript复制
curl -XGET localhost:9200/_cluster/health?pretty=true
pretty=true 表示格式化输出
level=indices 表示显示索引状态
level=shards 表示显示分片信息
代码语言:javascript复制
curl -XGET localhost:9200/_cluster/stats?pretty=true
显示集群系统信息,包括CPU JVM等等
代码语言:javascript复制
curl -XGET localhost:9200/_cluster/pending_tasks?pretty=true
获取集群堆积的任务
代码语言:javascript复制
修改集群配置
举例:

curl -XPUT localhost:9200/_cluster/settings -d ‘{
“persistent” : {
“discovery.zen.minimum_master_nodes” : 2
}
}’
transient 表示临时的,persistent表示永久的
代码语言:javascript复制
curl -XPOST ‘localhost:9200/_cluster/reroute’ -d ‘xxxxxx’
对shard的手动控制
代码语言:javascript复制
关闭节点
关闭指定192.168.1.1节点
curl -XPOST ‘http://192.168.1.1:9200/_cluster/nodes/_local/_shutdown’
curl -XPOST ‘http://localhost:9200/_cluster/nodes/192.168.1.1/_shutdown’
代码语言:javascript复制
关闭主节点
curl -XPOST ‘http://localhost:9200/_cluster/nodes/_master/_shutdown’
代码语言:javascript复制
关闭整个集群
$ curl -XPOST ‘http://localhost:9200/_shutdown?delay=10s’
delay=10s表示延迟10秒关闭
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_shutdown’
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_all/_shutdown’

三:_nodes系列

1、查询节点的状态
代码语言:javascript复制
curl -XGET ‘http://localhost:9200/_nodes/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/process’
curl -XGET ‘http://localhost:9200/_nodes/_all/process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/info/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/_all
curl -XGET ‘http://localhost:9200/_nodes/hot_threads

四、索引操作

代码语言:javascript复制
1、获取索引
curl -XGET ‘http://localhost:9200/{index}/{type}/{id}’
2、索引数据
curl -XPOST ‘http://localhost:9200/{index}/{type}/{id}’ -d’{“a”:”avalue”,”b”:”bvalue”}’
3、删除索引
curl -XDELETE ‘http://localhost:9200/{index}/{type}/{id}’
4、设置mapping
curl -XPUT http://localhost:9200/{index}/{type}/_mapping -d ‘{
“{type}” : {
“properties” : {
“date” : {
“type” : “long”
},
“name” : {
“type” : “string”,
“index” : “not_analyzed”
},
“status” : {
“type” : “integer”
},
“type” : {
“type” : “integer”
}
}
}
}’
5、获取mapping
curl -XGET http://localhost:9200/{index}/{type}/_mapping
6、搜索

curl -XGET ‘http://localhost:9200/{index}/{type}/_search’ -d '{
“query” : {
“term” : { “user” : “kimchy” } //查所有 “match_all”: {}
},
“sort” : [{ “age” : {“order” : “asc”}},{ “name” : “desc” } ],
“from”:0,
“size”:100
}
curl -XGET ‘http://localhost:9200/{index}/{type}/_search’ -d '{
“filter”: {“and”:{“filters”:[{“term”:{“age”:“123”}},{“term”:{“name”:“张三”}}]},
“sort” : [{ “age” : {“order” : “asc”}},{ “name” : “desc” } ],
“from”:0,
“size”:100
}

0 人点赞