我有我的群集,我想知道所有索引和类型'名字在里面。我用Sense。
答案 0 :(得分:77)
curl -XGET 'http://localhost:9200/_cat/indices?v'
将为您提供所有索引。
curl -XGET 'http://localhost:9200/_mapping?pretty=true'
将为您提供这些索引中的文档类型及其映射。
答案 1 :(得分:31)
yvespeirsman的回答是正确的,但是如果你想看到索引的类型,可以使用jq来获得更紧凑的答案。
curl -s -XGET 'http://localhost:9200/_mapping' | jq 'to_entries | .[] | {(.key): .value.mappings | keys}'
答案 2 :(得分:15)
某些映射太大,无法有效地使用_mapping
来解析类型。而是考虑aggregation。可能要快得多。对于索引:
curl -XGET "http://localhost:9200/_search" -d'
{
"aggs": {
"indicesAgg": {
"terms": {
"field": "_index",
"size": 200
}
}
},
"size": 0
}'
对于特定索引的类型(或者获取所有索引的所有类型,只需在URL中排除索引名称{myIndex}):
curl -XGET "http://localhost:9200/myIndex/_search" -d'
{
"aggs": {
"typesAgg": {
"terms": {
"field": "_type",
"size": 200
}
}
},
"size": 0
}'
我确定你也可以写一个单独的agg来同时返回。
答案 3 :(得分:0)
要获取索引内的所有映射:
result = sum(dct['quantity'] for dct in obj if 'items' in dct)