Я хотел бы выполнить поиск в индексе elasticsearch, но только для списка идентификаторов. Я могу выбрать идентификаторы с запросом терминов
{
"query": {
"terms": {
"_id": list_of_ids
}
}
}
Теперь я хочу выполнить поиск в полученном списке, что можно сделать с помощью такого запроса
{
"query": {
"bool": {
"must": {}
}
}
}
Мой вопрос: как я могу объединить эти два запроса? Одно решение, которое я нашел, состоит в том, чтобы добавить идентификаторы в обязательный запрос, подобный этому.
{
"query": {
"bool": {
"must": {}
"should": [{
"term": {
"_id": id1
},
"term": {
"_id": id2
}]
}
}
}
}
который отлично работает. Однако, если список идентификаторов очень велик, это может привести к ошибкам.
elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'failed to create query:
Мне интересно, есть ли более компактный способ написать такой запрос? Я думаю, что приведенная выше ошибка вызвана тем, что мой запрос слишком длинный, так как я добавил тысячи поисковых запросов по терминам ... должен быть способ просто предоставить массив, как в запросе терминов?