Elasticsearch 热门聚合
在Elasticsearch中,热门聚合(Top Hits Aggregation)用于获取与聚合匹配的文档的详细信息。以下是一个使用Elasticsearch DSL(Elasticsearch Query DSL)定义热门聚合的例子:
GET /_search
{
"size": 0,
"aggs": {
"top_tags": {
"terms": {
"field": "tags",
"size": 10
},
"aggs": {
"top_docs": {
"top_hits": {
"size": 1,
"sort": [
{
"date": {
"order": "desc"
}
}
]
}
}
}
}
}
}
在这个例子中,我们首先设置size
为0以告诉Elasticsearch我们不需要返回任何匹配文档,因为我们只关心聚合结果。然后,我们定义了一个名为top_tags
的聚合,它是一个terms
聚合,用于找到频率最高的10个tags
。对于每个tag
,我们进一步定义了一个top_docs
的子聚合,它是一个top_hits
聚合,用于找到每个tag
的最新一条记录。
这个聚合的结果将包含每个tag
的文档,并且文档是根据date
字段降序排列的。注意,这只是一个简化的例子,实际使用时可能需要根据你的Elasticsearch索引和查询需求进行调整。
评论已关闭