Elasticsearch Multi Search API - PullRequest
       1

Elasticsearch Multi Search API

0 голосов
/ 25 апреля 2018

Я пытаюсь выполнить несколько одновременных поисковых запросов, используя Elasticsearch (версия 6). Вот мой файл запросов:

{"index" : "web"}
{"max_concurrent_searches": 64, "query": {"match": {"content": "school"}}}
{"index" : "web"}
{"max_concurrent_searches": 64, "query": {"match": {"content": "car"}}}
{"index" : "web"}
{"max_concurrent_searches": 64, "query": {"match": {"content": "cat"}}}

Вот команда, которую я использую для выдачи массового запроса:

curl -H "Content-Type: application/x-ndjson" -XGET ''$url'/_msearch'
--data-binary "@$file"; echo

Однако я получаю следующую ошибку, указывающую на неправильное использование параметра max_concurrent_searches.

{"error":{"root_cause":[{"type":"parsing_exception","reason":"Unknown key for a VALUE_NUMBER in [max_concurrent_searches].","line":1,"col":29}],"type":"parsing_exception","reason":"Unknown key for a VALUE_NUMBER in [max_concurrent_searches].","line":1,"col":29},"status":400}

Если я удалил "max_concurrent_searches": 64, из файла запросов выше, все работает просто отлично.

Я хочу знать, как я могу использовать / установить параметр max_concurrent_searches, я не смог найти полезную информацию в документации Elasticsearch об этом, за исключением следующего:

Параметр запроса max_concurrent_searches в msearch может использоваться для контролировать максимальное количество одновременных поисков выполнит. Это значение по умолчанию основано на количестве узлов данных и размер пула потоков поиска по умолчанию.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Вы также можете выполнить выше с помощью почтальона.Просто измените тип содержимого на application/x-ndjson и не забудьте добавить символ новой строки в конце.Это даст вам ту же ошибку, и вы можете легко исправить ее с помощью различных комбинаций.MultiSearch - важная функция.

0 голосов
/ 25 апреля 2018

Вы должны добавить его к самому запросу:

Пример запроса: GET indexName / type / _msearch? max_concurrent_searches = 1100 (где indexName и type не обязательны)

Для вас это должно быть как:

curl -H "Content-Type: application/x-ndjson" -XGET ''$url'/_msearch**? 
max_concurrent_searches=1100**'
--data-binary "@$file"; echo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...