这是我的索引PublicationsLikes的映射:
目前,我正在ES上进行汇总,并按(出版物的ID)对结果计数进行分组。
{
"key": "<publicationId-1>",
"doc_count": 25
},
{
"key": "<publicationId-2>",
"doc_count": 387
},
{
"key": "<publicationId-3>",
"doc_count": 7831
}
返回的“键”(ID)是一个信息,但我还需要选择发布的其他字段,例如account和api。有点像:
{
"key": "<publicationId-1>",
"api": "Facebook",
"accountId": "65465z4fe6ezf456ezdf",
"doc_count": 25
},
{
"key": "<publicationId-2>",
"api": "Twitter",
"accountId": "afaez5f4eaz",
"doc_count": 387
}
我该如何处理?
谢谢。
最佳答案
通过top_hits
聚合可以最好地实现此要求,您可以在其中对每个存储桶中的文档进行排序并选择第一个存储桶,还可以控制要返回的字段:
{
"size": 0,
"aggs": {
"publications": {
"terms": {
"field": "id"
},
"aggs": {
"sample": {
"top_hits": {
"size": 1,
"_source": ["api","accountId"]
}
}
}
}
}
}