我将Elasticsearch过滤器聚合与嵌套的top_hits聚合一起使用,以基于不同的过滤器检索最匹配的文档,但是我似乎无法通过增强或嵌套的function_score查询来更改每个存储桶中的结果得分。这是不可能的吗?我还没有找到任何明确的文档说它行不通,并且查询执行得很好,但是结果得分没有受到影响。
示例查询(请注意第一次聚合的巨大推动力):
GET _search
{
"size":0,
"query":{
"bool":{
"should":[
{
"multi_match":{
"type":"phrase",
"query":"TV",
"fields":[
"categories^4"
]
}
}
]
}
},
"aggs":{
"1":{
"filter":{
"bool":{
"must":[
{
"multi_match":{
"type":"phrase",
"query":"Music",
"fields":[
"categories^10"
]
}
}
]
}
},
"aggs":{
"1_hits":{
"top_hits":{
"size":10,
"sort":[
{
"_score":{
"order":"desc"
}
}
]
}
}
}
},
"2":{
"filter":{
"bool":{
"must":[
{
"multi_match":{
"type":"phrase",
"query":"Music",
"fields":[
"categories"
]
}
}
]
}
},
"aggs":{
"2_hits":{
"top_hits":{
"size":10,
"sort":[
{
"_score":{
"order":"desc"
}
}
]
}
}
}
}
}
}