То, что вы хотите сделать, называется deep scrolling
, у вас есть только два способа сделать это:
- scroll
- search_after
Самый простой способ - это search_after , но вам нужно будет сделать два запроса:
- один запрос на
id3
- Еще один для
id1
Итак, в этом примере я ищу id2 : 128
. Я могу отсортировать документы с полем title
, и я заранее получил значение title
для id2
, которое составляет title_of_128
.
Чтобы выполнить search_after
, я должен добавить _id
к условию под сортировки
Вот мой запрос:
POST test/_search
{
"size": 2,
"search_after": ["title_of_128","128"],
"sort": [
{
"title": {
"order": "asc"
},
"_id": {
"order": "asc"
}
}
]
}
Результат этого запрос id2
и id3
Теперь я инвертирую направление сортировки, чтобы получить id1
:
POST test/_search
{
"size": 2,
"search_after": ["title_of_128","128"],
"sort": [
{
"title": {
"order": "desc"
},
"_id": {
"order": "desc"
}
}
]
}
Результат этого запроса id2
и id1
Обратите внимание, что сортировка с _id
устарела, и рекомендуется скопировать _id
в другое поле, если вы хотите использовать search_after