1、适用场景
Top hits(顶部命中)是一个聚合功能,用于在查询结果中返回每个桶(bucket)中的顶部 N 个文档。这对于需要在聚合结果中查看每个桶中的最相关或最高评分文档的情况非常有用。
简单来说,Top Hits 就是对聚合结果中相关文档的详细展示,它不同于 Post Filter,Post Filter 是基于源数据的查询,和 Agg 没有因果关系,其结果不对 Aggs 产生任何影响。Top Hits 则是基于 Aggs 的结果的查询,其受到 Aggs 结果的影响。
2、语法
Top Hits聚合的语法如下:
{
"aggs": {
"aggregation_name": {
"terms": {
"field": "字段名"
},
"aggs": {
"top_docs": {
"top_hits": {
"size": 数量,
"sort": [
{
"排序字段": {
"order": "排序顺序"
}
}
]
}
}
}
}
}
}
其中,“aggregation_name” 是聚合操作的名称,“字段名” 是要进行分桶的字段。“数量” 是要获取的每个桶中的文档数量。可以选择指定多个排序字段以及每个字段的排序顺序。文章来源:https://www.toymoban.com/news/detail-724234.html
3、案例
案例:按照商品类型分类聚合,对每个分桶展示相关的前 5 条文档文章来源地址https://www.toymoban.com/news/detail-724234.html
GET goods/_search
{
"size": 0,
"aggs": {
"tags_bucket": {
"terms": {
"field": "type.keyword"
},
"aggs": {
"top_agg": {
"top_hits": {
"size": 10,
"sort": [
{
"price": {
"order": "desc"
}
}
],
"from": 0
}
}
}
}
}
}
到了这里,关于ES中使用 Top Hits 查询分桶聚合结果的每个桶的详细数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!