Я пытаюсь получить самую последнюю версию каждого документа в моем наборе данных, когда документ еще не заархивирован (archived: false
). Поэтому, когда любая версия документа имеет значение true, она не должна отображаться в моем результате.
Пример моего набора данных:
{
name: "soccer game",
base_id: 1,
hours_remaining: 10,
updatedDate: 2019 - 03 - 10,
archived: false
}
{
name: 'basketball game",
base_id: 2,
hours_remaining: 20,
updatedDate: 2019 - 03 - 10,
archived: false
}
{
name: "soccer game",
base_id: 1,
hours_remaining: 5,
updatedDate: 2019 - 03 - 14,
archived: true
}
Ожидаемый результат:
{
name: 'basketball game",
base_id: 2,
hours_remaining: 20,
timestamp: 2019 - 03 - 10,
archived: false
}
После написания нескольких запросов я не смог достичь своей цели. Это одна из моих попыток.
{
"size": 10,
"query":{
"bool":{
"must":[
{
"query_string":{
"query": "*",
"fields":["name.keyword"]
}
},
{
"term":{
"archived": false
}
}
]
}
},
"collapse": {
"field": "base_id",
"inner_hits": {
"name": "most_recent",
"size": 1,
"sort": [{"updatedDate": "desc"}]
}
}
}
Что я делаю не так?