Почему возвращаемый результат ответа Elasticsearch по-прежнему равен 10000, когда параметр max_result_window был изменен?

У меня есть Django приложение с Elasticsearch. У меня есть индекс search_index, где мне нужно вывести более 10 000 результатов. Я вручную изменил параметр max_result_window, чтобы генерировать больше, чем 10 000 начальных ограничений. Но после изменения параметра max_result_window и size в body_search моего запроса, результат продолжает быть ограниченным 10 000.

Во-первых, я изменил параметр max_result_window на 12345 из search_index, используя метод со страницы Окно результатов слишком большое, из + размер должен быть меньше или равен: [10000], но было [100000]. Я проверил на http://localhost:9200/search_index/_settings, и у меня получился следующий результат "max_result_window":"12345". Затем я изменил параметр size своего body_search = {'query': {...}, 'size': 12345}. Но конечный результат всегда ограничен 10 000.

Кто-нибудь знает, почему изменение не учитывается в моем поиске?

Tldr;

Я на 99% уверен, что вам лучше использовать scroll api / pagination.

Но чтобы решить вашу проблему, вам нужно сказать эластику, чтобы отслеживать точный счет

Это можно сделать через "track_total_hits": true в вашем запросе.

Вернуться на верх