弹性搜索加入

时间:2019-08-10 12:47:57

标签: elasticsearch

我想查询弹性搜索客户订购的产品以及产品详细信息。

产品数据如下:

|productid|productname|etc|
|P1|Product 1|...|
|P2|Product 2|...|
|P3|Product 3|...|

订单数据如下:

|customerid|orderid|productid|
|C1|O1|P1|
|C1|O1|P2|
|C1|O2|P3|
|C2|O3|P1|
|C2|O3|P1|

我可以按客户查询订单数据并获得一堆productid值,但随后我必须分别查询每个产品(或使用可能成千上万的子句进行批量查询)。

有什么方法可以通过customerid查询产品吗?还是要按客户ID查询订单并获取产品详细信息?

是否有一种有效的方法可以按ID查询成千上万的产品详细信息?即两阶段方法:一个是客户对产品ID的查询,然后是第二个产品ID的单个查询。

1 个答案:

答案 0 :(得分:0)

您有两种近似方法
1.上面的注释中也提到了嵌套对象/查询选项
2. has_查询在特定情况下听起来很重要

此处提供完整的详细信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/joining-queries.html