我是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.name
,mxHost3.name
和mailProvider
的所有唯一值 em> top_hits 汇总结果之一。
感谢您的帮助!