ElasticSearch:从与top_hits聚合匹配的文档字段中获取唯一值

时间:2019-08-02 18:16:30

标签: elasticsearch

我是ElasticSearch的新手,却陷入了查询问题。

我的文档格式如下(简化):

{   
    ...
    "mailProvider": "gmail.com",
    "mxHost1": {
      "name": "aspmx.l.google.com",
      ...
    },
    "mxHost2": {
      "name": "aspmx2.googlemail.com",
      ...
    },
    "mxHost3": {
      "name": "aspmx3.googlemail.com",
      ...
    }
}

通过以下查询,我获得了mailProvider字段的最高值:

POST /results/_search?size=0
{
    "aggs": {
        "top_providers": {
            "terms": {
                "field": "mailProvider.keyword",
                "size": 3
            }
        }
    }
}

此查询的结果是:

{
  ...
  "aggregations" : {
    "top_providers" : {
        "buckets" : [
        {
          "key" : "gmail.com",
          "doc_count" : 138
        },
        {
          "key" : "outlook.com",
          "doc_count" : 43
        },
        {
          "key" : "secureserver.net",
          "doc_count" : 29
        }
      ]
    }
  }
}

到目前为止,一切都很好。但是现在我的实际问题...

我需要从所有mxHost1.name字段设置为<的文档中获取mxHost2.namemxHost3.namemailProvider的所有唯一值 em> top_hits 汇总结果之一。

感谢您的帮助!

0 个答案:

没有答案
相关问题