Я новичок в ElasticSearch, и мой сценарий похож на что-то вроде: есть индекс, содержащий около 100 документов.Я использую следующий фрагмент для извлечения этих
ListenableActionFuture f = esClient.prepareSearch (index) .setTypes (type) .setSearchType (SearchType.DFS_QUERY_THEN_FETCH) .setQuery (multiMatchQuery) .execute (); * 10031004 * Я хочу получить все документы за один раз без использования прокрутки.Я знаю, что у индекса не будет так много записей.Если я укажу
ListenableActionFuture f = esClient.prepareSearch (index) .setTypes (type) .setSearchType (SearchType.DFS_QUERY_THEN_FETCH) .setQuery (multiMatchQuery) .setSize (100) .execute ();поведение противоречивоКоличество извлекаемых записей меняется каждый раз, иногда 34 документа, иногда 21 и т. Д.
Но если я не укажу размер, выборка будет 10 всегда.Я используюasticsearch 5.6.3.
Я пробовал несколько решений, таких как использование без типа поиска, как показано ниже, но не повезло
ListenableActionFuture f = esClient.prepareSearch (index) .setTypes (type) .setQuery (multiMatchQuery) .setSize (hitcount) .execute ();
Мне нужен запрос для извлечения всех записей за один раз.Когда я пытался напечатать поисковый ответ, я обнаружил, что общее число совпадений неверно, как показано ниже:
попадания ": {" всего ": 25," max_score ": 0.18232156," попадания ": [{....}}}Должно быть 100. Опять же, если я выполню один и тот же код, я получу разные общие хиты.
Мой индекс содержит 5 осколков
Мне интересно, почему я получаю непоследовательные общие хитычасто.