Учитывая пример пользователя и документы продукта ниже:Как фильтровать запрос, используя другой запрос в ElasticSearch
{
"_id": "1",
"_type": "user",
"_source": {
"id": "1",
"following": ["2", "3", ... , "10000"]
}
{
"_id": "1",
"_type": "product",
"_source": {
"id": "1",
"owner_id": "2"
}
{
"_id": "2",
"_type": "product",
"_source": {
"id": "2",
"owner_id": "10001"
}
Я хочу, чтобы получить продукты, которые принадлежат пользователям, которые следуют пользователь с идентификатором = 1. Я не хочу делать 2 разных запроса (сначала для получения пользователей, за которыми следует идентификатор пользователя = 1, а затем второй для получения продуктов), поскольку идентификатор пользователя = 1 соответствует ~ 10000 пользователям.
Есть ли способ получить результат, используя только один запрос?
No. Вы хотите внутреннее соединение. Это невозможно в ES. Другие варианты: https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html –