我正在使用带有嵌套 top_hits 聚合的 Elasticsearch 过滤器聚合来检索基于不同过滤器的最匹配文档,但我似乎无法通过 boosting 或嵌套的 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":{ …Run Code Online (Sandbox Code Playgroud) 我研究了elasticsearch聚合查询,但找不到它是否支持多个聚合函数。换句话说,我想知道elasticsearch是否可以生成与此Sql聚合查询等效的内容:
SELECT account_no, transaction_type, count(account_no), sum(amount), max(amount) FROM index_name GROUP BY account_no, transaction_type Having count(account_no) > 10
Run Code Online (Sandbox Code Playgroud)
如果是,怎么办?谢谢。
aggregate-functions elasticsearch elasticsearch-aggregation elasticsearch-sql