两个索引文件如下:
class First(Document):
class Index:
name = 'first'
case_id = Keyword()
name = Text()
class Second(Document):
class Index:
name = 'second'
case_id = Keyword()
status = Text()
我只想以sql格式执行下面这样的查询
select * from first as f, second as s where s.case_id = f.case_id or s.status = 'xyz'
如何使用ElasticSearchdsl查询?
1条答案
按热度按时间hmmo2u0o1#
ElasticSearch不支持索引之间的联接
原因:ElasticSearch不是关系型的,非规范化的数据应该存储在这里。
摘自以下弹性文件:
在像elasticsearch这样的分布式系统中执行完整的sql样式的连接代价高昂。相反,elasticsearch提供了两种连接形式,它们被设计成水平伸缩。
根据用例,使用嵌套或父/子Map来存储数据。
嵌套:如果嵌套文档的基数很低并且索引是读密集型的
父/子:如果子对象的基数高于父对象,则需要频繁更新父/子对象