запрос условий elasticsearch не извлекает все документы - PullRequest
0 голосов
/ 17 июня 2020

Ниже приведен запрос условий с _msearch. Но это не дает всего результата. На данный момент он возвращает результат только для 4161, хотя данные существуют и для 4402.

, пожалуйста, предложите решение.

GET _msearch
{ "index": ["index1", "index2", "index3"]}
{"query": {"terms": {"user_id": [4161,4402] } }}

type идентификатора пользователя: long

1 Ответ

0 голосов
/ 17 июня 2020

Вам нужно либо увеличить параметр size, либо по-другому отсортировать данные. По умолчанию поисковый запрос возвращает только 10 совпадений, и вполне возможно, что первые 10 возвращаемых документов относятся к user_id: 4161.

GET _msearch
{ "index": ["index1", "index2", "index3"]}
{"size": 100, "query": {"terms": {"user_id": [4161,4402] } }}

Запрос terms является запросом ИЛИ , т.е. terms: [4161,4402] эквивалентно term: 4161 OR term: 4402.

Другой способ, поскольку вы используете _msearch, - это отправить один запрос на каждый индекс, поскольку вы вернете больше данных, вам может повезти и получить данные для обоих пользователей.

GET _msearch
{ "index": "index1"}
{"query": {"terms": {"user_id": [4161,4402] } }}
{ "index": "index2"}
{"query": {"terms": {"user_id": [4161,4402] } }}
{ "index": "index3"}
{"query": {"terms": {"user_id": [4161,4402] } }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...