如何解决如何在 Elasticsearch_dsl 中搜索嵌套文档
我有多个索引,称为 Post with nested document Comment。
我的文档是这样定义的
class CommentDoc(InnerDoc):
title = Text(analyzer=ngram_analyzer)
content = Text(analyzer=ngram_analyzer)
class PostDoc(Document):
content = Text(analyzer=ngram_analyzer)
comments = nested(Icd10Doc)
id = Integer()
这就是我当前搜索的方式
s = Search(index=['post','blog','artical'])
q = Q("multi_match",query="whatever",fields=['name','title','content'])
s = s.query(q)
那么如何使用嵌套在评论中的 Docs 来搜索 Post 索引?
我应该向 fields 数组添加什么?
解决方法
起初我认为你应该编辑你的模型,但我不确定?:
comments = Nested(Icd10Doc) ---> comments = Nested(CommentDoc)
我在类似的条件下测试过这个查询,我认为它适合你?
nested_q = Q("nested",path='comments',query=Q("multi_match",query="whatever",fields=['comments.content']))
最后,如果你想组合查询,你可以使用这个:
final_q = nested_q & other_q (for AND operation)
final_q = nested_q | other_q (for OR operation)
最后:
s = s.query(final_q)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。