Elasticsearch прокрутка предыдущий как API - PullRequest
0 голосов
/ 19 февраля 2019

Я постоянно генерирую данные временных рядов, которые помещаю в эластичный поиск.Одним из требований является получение записей с нумерацией страниц.Однако я хочу записи того времени, когда запрос был сделан даже на следующей странице.

API-интерфейсы & Size или API search_after из эластичного поиска не поддерживают моментальный снимок и возвращают последние данные.У API прокрутки нет пути назад.

Как мне выполнить мое требование, нумерацию страниц без новых данных и возможность перейти к следующему и предыдущему?

1 Ответ

0 голосов
/ 19 февраля 2019

Это действительно зависит от конкретного случая использования - пользователи будут использовать первые страницы и все, или вы планируете сканировать весь набор данных ответов?

если вы хотите исследовать и сканировать все данные или большое количество страниц, вам нужно будет использовать Scroll API, поскольку механизм разбиения на страницы не так уж надежен для обхода больших наборов данных (по умолчанию он ломаетсяоколо 10000).

Действительно, свиток не поддерживает «возврат страницы», но это вопрос необходимости использования.Планируете ли вы просто просмотреть все данные или предоставить простую подкачку, когда вы ожидаете, что люди нажмут кнопку «назад»?если дело в том, что люди смотрят на страницы, то я не думаю, что ограничения размера подкачки будут достигнуты, и вам лучше использовать пейджинг, а не прокрутку.

Если вы выберете пейджинг, для того, чтобы иметь «нумерацию страниц без новых данных», вы можете добавить к запросу фильтр временного диапазона с фиксированием от и до отметок времени.так что результат должен быть согласованным (вместо использования now ())

...