ES 索引联表查询 | 关联字段商户ID | 两种方法详解
在Elasticsearch中,可以使用多种方法进行索引联表查询。以下是两种常见的方法:\n\n1. 使用嵌套对象:\n 在一个索引中,可以使用嵌套对象来表示关联关系。假设有两个索引,一个是商户索引,另一个是订单索引。商户索引中的每个文档包含一个唯一的商户ID,而订单索引中的每个文档包含一个商户ID字段,用于与商户索引进行关联。可以使用嵌套对象将订单索引中的商户ID字段与商户索引中的文档进行关联。\n\n 以下是一个示例请求:\n\n \n GET 商户索引/商户类型/_search\n {\n "query": {\n "nested": {\n "path": "订单索引",\n "query": {\n "match": {\n "订单索引.商户ID": "商户索引.商户ID"\n }\n }\n }\n }\n }\n \n\n 以上查询将返回与商户索引中的商户ID关联的所有订单。\n\n2. 使用父子关系:\n 另一种方法是使用父子关系来表示关联关系。在这种模型中,商户索引可以被定义为父索引,订单索引可以被定义为子索引。商户索引中的每个文档可以作为父文档,而订单索引中的每个文档可以作为子文档,并且子文档可以通过指定父文档的ID来与父文档进行关联。\n\n 以下是一个示例请求:\n\n \n GET 订单索引/订单类型/_search\n {\n "query": {\n "has_parent": {\n "parent_type": "商户类型",\n "query": {\n "match": {\n "商户ID": "父文档的ID"\n }\n }\n }\n }\n }\n \n\n 以上查询将返回与指定商户ID关联的所有订单。\n\n无论使用哪种方法,都需要在索引设计时考虑到关联关系,并在查询时正确使用关联字段。
原文地址: https://www.cveoy.top/t/topic/pMYh 著作权归作者所有。请勿转载和采集!