我有DocumentVersions的索引 - 文档的不同版本。
{versionId: 1, documentId:1, ...},
{versionId: 2, documentId:1, ...},
{versionId: 3, documentId:2, ...},
{versionId: 4, documentId:2, ...},
...
默认情况下,用户只能接收最新版本的文档。
在 Solr 中,我使用 ResultGrouping - group.field=documentId, group.limit=1, group.sort=versionId desc
。
我如何通过elasticsearch获得类似的东西?
答案 0 :(得分:1)
这可以通过documentId
和top_hits
子聚合上的术语聚合来实现
POST /index/_search
{
"size": 0,
"aggs": {
"docs": {
"terms": {
"field": "documentId",
"size": 1000
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {"versionId": "desc"}
}
}
}
}
}
}
答案 1 :(得分:0)
我刚发现Field Collapsing - 实际上是基于聚合: - /
希望有一种更方便的方式。