如何获取索引中存在的所有字段的列表(即索引文档中出现的字段,而不仅仅是映射中的字段)?
说明:
不要认为有任何办法可以做到这一点.但由于索引中的所有内容都会自动在映射中抛出,因此我们知道映射至少包含索引中的每个字段.从那里,您可以循环遍历映射中的每个字段,并对具有该字段的索引中的结果数进行计数.如果计数大于0,则该字段存在; 如果计数为0,则该字段不是索引的一部分.由于我们知道索引中的每个字段都将存在于您的映射中,因此应涵盖所有可能性.
一些示例API调用:
# Get the mapping $ curl -XGET 'http://localhost:9200/index/type/_mapping?pretty' # Count a field $ curl -XGET 'http://localhost:9200/index/type/_count' -d ' { "query" : { "constant_score" : { "filter" : { "exists" : { "field" : "name_from_mapping" } } } } }'
文档:
GET
制图
count API
存在过滤器
从1.3开始,您有_field_names元字段.
{ "aggs": { "Field names": { "terms": { "field": "_field_names", "size": 10 } } } }