怎么又是你

如何在多个表中检索nested object?

Elasticsearch | 作者 walk | 发布于2019年11月25日 | 阅读数:1327

大家好,很高兴进入中文社区,刚刚接触es, 没有深入研究,在刚刚运用检索api 的时候就遇到了问题,很是头疼。希望大家百忙之中,帮我看看。

需求: elasticsearch 7.2.0, 一共有二个索引表,检索要求: 从多个表中全文检索全部内容,并且支持 and not 或 等常用关系,还要支持表里面的: nested object 里面的数据。 
 
一开始我就想到了query_string 查询语句:
 

WechatIMG99.png

 
 
这样查询,全文检索多个表都可以查询到,但是如果遇到nested object 就查询不到结果。
 
 
最后看了官网的nested object 查询,更改了查询语句。
 
 

WechatIMG101.png

 
 
我利用 bool 查询,这样查询也存在一个问题,如果nested在第一张表里面,可以检索全部内容,如果第二张表里面没有nested object 指定的查询语句会报错。
已邀请:

Ombres

赞同来自:

nested 字段在lucene中是特殊方式实现的,只能用专用的查询,建议看看文档https://www.elastic.co/guide/e ... .html
 
如果普通查询和nested要同时使用,请使用bool query进行组合

要回复问题请先登录注册