elasticsearch - 如何在搜索查询中列出索引中具有至少1个值的所有字段

标签 elasticsearch

在索引任何文档之前,我正在整理一组Elasticsearch索引,它们之间具有相同的映射。对于其中一些索引,从不使用某些字段。

给定一些搜索查询,是否有办法获取所有使用过的字段的列表?例如,假设我执行的搜索返回以下单个文档(或一组与此模式相似的文档):

{
  type: "foo",
  data: {
    name: "foo",
    address: "bar",
    phoneNumber: "baz"
  }
}

我希望我要查询的查询返回[type, data.name, data.address, data.phoneNumber]

最佳答案

为此,可以使用meta字段_field_names

如下面的示例所示,对此进行汇总将使您的文档数也得到增加。

范例:

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

关于elasticsearch - 如何在搜索查询中列出索引中具有至少1个值的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756111/

相关文章:

elasticsearch - 在Elasticsearch中,如果术语数量不固定,如何使用多个术语过滤器,它们会有所不同?

java - 使用 Apache HttpComponents 客户端签署 AWS HTTP 请求

java - Elasticsearch Java 高级 REST 客户端建立一堆 TCP 连接并且在索引数据后不关闭它们

elasticsearch - 如何获得Elasticsearch 5.6.3跨集群搜索?

python-3.x - Elasticsearch 多索引批量导入

elasticsearch - 当在搜索过程中使用 “from”时,ElasticSearch会忽略 “scroll”吗?

elasticsearch - Elasticsearch:如果字段存在于多索引查询中,则有条件地过滤查询

elasticsearch - 在Elasticsearch中插入大型事件失败

elasticsearch - 使用elasticsearch作为输入和输出来测试logstash

elasticsearch - Elastic Search 5.6中的嵌套查询兼容性