关于此Elasticsearch映射
PUT /some-index/_mapping/some-mapping
{
"properties": {
"group-id": {
"type": "keyword"
},
"id": {
"type": "keyword"
},
"some-other-field": {
"type": "keyword"
}
}
}
让我们说我们有这些
这样的价值观[
{ "group-id": "1", "id": "1", "some-other-field": "some" },
{ "group-id": "2", "id": "2", "some-other-field": "other" },
{ "group-id": "2", "id": "3", "some-other-field": "field" }
]
尝试构建查询
返回包含最大 group-id 的所有记录。在此特定示例中,它应该完全返回最后2个项目,包括 id 和 some-other-field 。当然,最大的 group-id 可能会随着新记录的索引而变大。如果发生这种情况,则应返回一组全新的结果,因为之前的结果将不再包含最大的 group-id 。
答案 0 :(得分:1)
如果您需要支持最大的ID,则应将字段类型更改为数字。
您可以使用max
聚合首先找出最大值(如果这是一个数字字段),然后执行第二个查询,搜索具有该最大值的所有文档(不要害怕执行不止一个问题来回答你的问题,这很好。)