2016-12-15 3 views
0

У меня есть много данных, и мне нужно предложить разбиение по страницам. Когда я выхожу за лимит from + to > 10000, elasticsearch немедленно терпит неудачу. Я не хочу устанавливать index.max_result_window на большее число, потому что мне не всегда нужен такой предел. На самом деле предел слишком редко перешагивается.Огромная разбивка на страницы

Я использую ES 2.3 в AWS.

Есть ли способ обхода? Как я могу это достичь?

Благодаря

ответ

0

Я думаю, что лучше использовать scroll Это более эффективный способ.

+0

Ну, но это не решает мою проблему. Свиток покажет все результаты, без пейджинга, правильно? Мне нужно разрешить пользователю перейти на 40-ю страницу в обязательном порядке. – Facedown

+0

Каков размер каждого запроса? – Lax

+0

У меня есть динамический «perPage» выбор с «неограниченными» номерами страниц - неограниченным я имею в виду прыжок на 100-ю страницу, если результатов достаточно. Ответ имеет приблизительно 60 КБ. – Facedown

1

Вы можете использовать scroll, но я думаю, что это никогда не предназначалось для подкачки в режиме реального времени, как указано в документах? Возможно, вы можете установить max_result_window на большее число, но только, когда вам это нужно, и установите его после? В любом случае, это динамический индекс.

curl -XPUT "http://localhost:9200/my_index/_settings" -d '{ "index" : { "max_result_window" : 100000 } }'

+0

. Изменение предела в соответствии с текущим количеством результатов представляется хорошей идеей. Я дам ему попробовать. – Facedown

Смежные вопросы