如何列出索引中搜索查询中至少包含1个值的所有字段

时间:2016-09-28 19:29:53

标签: elasticsearch

在编制任何文档之前,我正在调整一组具有相同映射的弹性搜索索引。对于其中一些索引,从不使用某些字段。

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

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

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

1 个答案:

答案 0 :(得分:1)

可以使用元字段_field_names来实现此目的。

如下例所示,在此处运行聚合也会为您提供文档计数。

示例:

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