当前位置:  开发笔记 > 数据库 > 正文

列出elasticsearch索引中的所有字段?

如何解决《列出elasticsearch索引中的所有字段?》经验,为你挑选了2个好方法。

如何获取索引中存在的所有字段的列表(即索引文档中出现的字段,而不仅仅是映射中的字段)?



1> Sam..:

说明:

不要认为有任何办法可以做到这一点.但由于索引中的所有内容都会自动在映射中抛出,因此我们知道映射至少包含索引中的每个字段.从那里,您可以循环遍历映射中的每个字段,并对具有该字段的索引中的结果数进行计数.如果计数大于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

存在过滤器



2> Bax..:

从1.3开始,您有_field_names元字段.

{
  "aggs": {
    "Field names": {
      "terms": {
        "field": "_field_names", 
        "size": 10
      }
    }
  }
}


这不再适用于5.x请参阅:https://github.com/elastic/elasticsearch/issues/22576
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有