Я ищу способ поиска по нескольким индексам одновременно, используя Elastica.
У меня есть индекс products
, а индекс user
.
products
содержит {product_id, product_name, price}
, а user
содержит {product_id, user_name, date}
.Зная, что product_id
в обоих одинаковы, в products
каждый products_id
уникален, но в user
они не таковы, как пользователь может купить один и тот же продукт несколько раз.
В любом случае, я хочу автоматически получать цену товара из индекса products
при поиске по индексу user
.
Я знаю, что мы можем искать по нескольким индексам, например, так (поправьте меня, если я ошибаюсь):
$search = new \Elastica\Search($client);
$search->addIndex('users')
->addType('user')
->addIndex('products')
->addType('product');
Но проблема в том, что когда я пишу агрегацию на products_id
например, а затем создайте новый запрос с некоторыми фильтрами:
$products_agg = new \Elastica\Aggregation\Terms('products_id');
$products_agg->setField('products_id')->setSize(0);
$query = new \Elastica\Query();
$query->addAggregation($products_agg);
$query->setQuery($bool);
$search->setQuery($query);
Как эластика узнает, по какому индексу искать?Как я могу связать это products_id
с другим индексом?