我有一些对象,其中一些按照' masterID'进行分组。我需要一个聚合/查询,向我显示具有最高'相关性的对象'每个对象组由' masterID'。
组成汇总了术语' masterID'我可以为每个' masterID'获得桶。但是,我如何获得最高的相关性'每个桶中的对象?
目前的查询是:
curl -XGET 'http://localhost:9200/pwo/_search?search_type=count&size=0&pretty=true' -d '{
"aggregations": {
"masterIDs": {
"terms": {
"field": "masterID",
"size": 0
}
}
}
}
'
和
curl -XGET 'http://localhost:9200/pwo/_search?size=0&pretty=true' -d '{
"aggregations": {
"relevance": {
"max": {
"field": "relevance"
}
}
}
}
'
有没有办法通过单个查询解决这个问题?
答案 0 :(得分:1)
您可以在masterIDs块中添加相关性聚合块,如下所示:
curl -XGET 'http://localhost:9200/pwo/_search?size=0&pretty=true' -d '{
"aggregations": {
"masterIDs": {
"terms": {
"field": "masterID",
"size": 0
},
"aggregations": {
"relevance": {
"max": { "field" : "relevance" }
},
"aggregations": {
"top_hits": {
"size": 1
}
}
}
}
}
}
'