Эластичный поиск и сортировка
Я пытаюсь сортировать результаты поиска по дате на нескольких страницах результатов. Сортировка работает на каждой странице, есть ли способ сортировки по всему набору?
Например: если страница 1 имеет элементы с 13 февраля по 1 февраля; на второй странице не должно быть элементов после 1 февраля.
Вот краткий фрагмент запроса, который я отправляю. Я также попробовал сортировку по дате, затем _score, но это привело к еще более странным результатам (в первую очередь, порядок сортировки был таким же).
{
"query": {
"from": 0,
"size": 24
"sort": [
"published_on": {
"missing": "_last",
"ignore_unmapped": true,
"order": "desc"
}
]
"custom_filters_score": {
"query": {
"bool": {
"must": [
{
"match": {
"content": "Some query"
}
}
]
... more ...
}
},
"filters": [
{
"filter" => {
"type" => {
"value" => "cats"
}
},
"boost" => 2
}
... more ...
]
}
}
}
Любые мысли? Спасибо заранее!
Ответы
Ответ 1
Я не умножал индекс страницы на количество элементов на странице. Я не уверен, как я пропустил одно и то же на каждой странице, перемещаясь вверх на одно место.
Я уверен, что это решит все другие странные проблемы, с которыми я сталкивался.
Ответ 2
sort, size, from должен быть в корневом каталоге
{
query:{
...
},
sort:[
...
],
from:15,
size:5
}
Поиск API - Сортировка