Как получить все документы (размером более 10000) в индексе эластичного поиска - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь получить все документы в индексе, я попробовал следующее -

1) сначала получить общее количество записей, а затем параметр / _search? Size = параметр - не работает как размерпараметр ограничен 10000

2) попытался разбить на страницы, сделав несколько вызовов, и использовал параметры «? size = 1000 & from = 9000» -работано до «from» было <9000, но после того, как оно превысило 9000, я снова получил этот размерошибка ограничения - </p>

"Result window is too large, from + size must be less than or equal to: [10000] but was [100000]. 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"

Так как я могу получить все документы в индексе? Я прочитал некоторые ответы, предлагающие использовать API прокрутки и даже состояния документации -

"While a search request returns a single “page” of results, the scroll API can be used to retrieve large numbers of results (or even all results) from a single search request, in much the same way as you would use a cursor on a traditional database."

Но яНе удалось найти пример запроса, чтобы получить все записи в одном запросе.

В индексе у меня 388794 документа. Также обратите внимание, что это однократный вызов, поэтому меня не беспокоит проблема производительности.

1 Ответ

0 голосов
/ 05 ноября 2019

Понял решение - Scroll api - это правильный способ сделать это - вот как это работает -

При первом вызове для извлечения документов можно указать размер, скажем, 1000, и параметр scroll, указывающийвремя в минутах, по истечении которого контекст поиска истекает.

POST /index/type/_search?scroll=1m
{
    "size": 1000,
    "query": {....
    }
}

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

POST /_search/scroll 
{
    "scroll" : "1m", 
    "scroll_id" : "DnF1ZXJ5VGhIOLSJJKSVNNZZND344D123RRRBNMBBNNN===" 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...