因个人爱好,计划对elasticsearch官方文档部分章节做翻译,统一发布至简书博客。特在此声明:
- 所有翻译内容禁止商业网站转载(禁止使用此内容牟利)
- 欢迎elasticsearch使用者和爱好者转载,但请注明出处。
- 希望读者可以通过打赏或者评论的方式支持我。
涉及到的章节如下
Document APIs - 文档相关的 API
Search APIs - 查询相关的API
Aggregations - 聚合
cat APIs - 查看相关的 API
Cluster APIs - 集群相关的APIS
Query DSL 结构化查询语句
Mapping 映射
Analysis 分词
Index Modules - 索引模块
翻译宗旨是,使涉及到的Elasticsearch文档内容 中英文无差别使用。可能不逐句翻译,可能会加入自己的理解,可能会打乱顺序,可能会合并多篇章节。
QQ群:163861494 。这是我维护的一个QQ群,用以做搜索技术交流。你可以加入,获取最即时的信息。
————————— Wonderful Content Start ————————
elasticsearch cat API
介绍
所有的cat 命令接受一个查询字符串参数help,来查看请求头和他提供的信息。/_cat 命令会列出所有可用的命令
curl 10.248.200.95:9200/_cat
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
通用参数
Verbose
每一个命令都接受查询字符串v来返回详细的输出
[dmadmin@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/master
-XYVZvY8RBSgT_UTKnm4YA 10.248.200.95 10.248.200.95 95_new
[dmadmin@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/master?v
id host ip node
-XYVZvY8RBSgT_UTKnm4YA 10.248.200.95 10.248.200.95 95_new
Help
help 将输出相关的列,
[dmadmin@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/master?help
id | | node id
host | h | host name
ip | | ip address
node | n | node name
headers
每一个命令接受一个查询字符串h,指定返回哪些列
[dmadmin@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/nodes?h=ip,port,heapPercent,name
10.248.200.95 9300 46 95_new
可以使用通配符返回相关的多个列
[dmadmin@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/thread_pool?h=ip,bulk.*
10.248.200.95 fixed 0 4 0 50 0 4 1845717 4 4
格式化为数字
使用一些命令可以将一些类型格式化为数字来输出,比如byte,size,time 。这些类型默认的显示格式对人类友好的。比如3.5mb 而不是3763212,这样会影响排序,当你需要排序的时候,可以修改。
举个例子,如果你想找到你集群中最大的索引(占用的磁盘最大),你可以使用/_cat/indices API来处理。你只需要做2件事
- 1,关闭human 模式
- 2,使用shell的sort命令
[etest@ip-10-248-200-95 ~]$ curl 10.248.200.95:9200/_cat/indices?bytes=b | sort -rnk8
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
105 948 105 948 0 0 86646 0 --:--:-- --:--:-- --:--:-- 94800
green open ware_index_20170306 1 0 13464943 408183 5262102838 5262102838
green open ware_index_20170508 1 0 3856275 561897 2507469280 2507469280
green open ware_index_20161124 1 0 4109687 1512573 2329827190 2329827190
green open .marvel-es-1-2017.06.15 1 0 154923 120 51517665 51517665
green open .marvel-es-1-2017.06.13 1 0 154924 96 51063984 51063984
green open .marvel-es-1-2017.06.14 1 0 154923 72 50911784 50911784
green open .marvel-es-1-2017.06.12 1 0 154923 37 50815402 50815402
green open .marvel-es-1-2017.06.10 1 0 154923 120 50641339 50641339
green open .marvel-es-1-2017.06.11 1 0 154887 48 49570329 49570329
green open .marvel-es-1-2017.06.16 1 0 56158 36 18935038 18935038
green open .kibana 1 0 2 0 19918 19918
green open .marvel-es-data-1 1 0 4 2 18084 18084
- time units 使用time
- size units 使用 size
- byte units 使用bytes参数
指定响应类型为text、json、smile、yaml或者cbor
[etest@ip-10-248-200-95 ~]$ curl "10.248.200.95:9200/_cat/indices?format=json&pretty"
[ {
"health" : "green",
"status" : "open",
"index" : ".marvel-es-1-2017.06.15",
"pri" : "1",
"rep" : "0",
"docs.count" : "154923",
"docs.deleted" : "120",
"store.size" : "49.1mb",
"pri.store.size" : "49.1mb"
}, {
"health" : "green",
"status" : "open",
"index" : ".marvel-es-1-2017.06.14",
"pri" : "1",
"rep" : "0",
"docs.count" : "154923",
"docs.deleted" : "72",
"store.size" : "48.5mb",
"pri.store.size" : "48.5mb"
} ]
当前支持的格式有:text,json,smile,yaml,cbor
有些格式,也可以通过http请求头Accept来指定。
% curl '192.168.56.10:9200/_cat/indices?pretty' -H "Accept: application/json"
[
{
"pri.store.size": "650b",
"health": "yellow",
"status": "open",
"index": "twitter",
"pri": "5",
"rep": "1",
"docs.count": "0",
"docs.deleted": "0",
"store.size": "650b"
}
]
Sort
查询字符串接收一个s参数,可以指定排序方式,例如:desc,:asc,其中asc是默认的排序方式。
例如s=column1,column2:desc,column3
GET _cat/templates?v&s=order:desc,template