ElasticSearch: окно результатов слишком велико - PullRequest
0 голосов
/ 15 апреля 2020

Мой друг хранил 65000 документов в облаке поиска Elasti c, и я хотел бы получить их все (используя python). Однако, когда я запускаю свой текущий скрипт, возникает ошибка, которая замечает, что:

RequestError(400, 'search_phase_execution_exception', 'Result window is too large, from + size must be less than or equal to: [10000] but was [30000]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting.') 

Мой скрипт

 es = Elasticsearch(cloud_id=cloud_id, http_auth=(username, password))
 docs =  es.search(body={"query": {"match_all": {}}, '_source': ["_id"], 'size': 65000})

Какой самый простой способ восстановить все эти документы и не ограничивать их до 10000 документов? спасибо

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

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

1 голос
/ 15 апреля 2020

В самом сообщении об ошибке упоминается, что, как вы можете решить проблему, внимательно посмотрите эту часть сообщения об ошибке.

This limit can be set by changing the [index.max_result_window] index level setting.

Пожалуйста, обратитесь к настройке уровня обновления индексов о том, как измените это.

Так что для вашей настройки это будет выглядеть так:

PUT /<your-index-name>/_settings
{
    "index" : {
        "index.max_result_window" : 65000 -> note its equal to your all the docs in your index
    }
}
0 голосов
/ 17 апреля 2020

Ограничение установлено, чтобы результирующий набор не перегружал ваши узлы. Результаты будут занимать память в узле elasti c. Чем больше набор результатов, тем больше объем памяти и влияние на узлы.

В зависимости от того, что вы хотите сделать с найденными документами,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...