为了账号安全,请及时绑定邮箱和手机立即绑定

django_elasticsearch_dsl 中像 django 中的一样进行真正的查询?

django_elasticsearch_dsl 中像 django 中的一样进行真正的查询?

心有法竹 2022-05-24 15:41:47
需要使用 django_elasticsearch_dsl 搜索给定的文本。它应该适用于完整的单词并且仅适用于世界的一部分。就像“示例”和“示例”一样。使用 python 3.6,django_elasticsearch_dsl 7.0在文档中发现 django“icontains”查询类似于 elasticsearch_dsl.query 中的“match_phrase”,但似乎对我不起作用。titles = TitleDocument.search().query(            Q("match", title=kwargs['text']) or            Q("match", slug=kwargs['text']) or            Q("match", page_title=kwargs['text']) or            Q("match_phrase", menu_title=kwargs['text']) or            Q("match_phrase", meta_description=kwargs['text']) )不适用于部分单词(例如“neve”,full 是“never”)但 Django 查询效果很好ti = Title.objects.filter(meta_description__icontains=kwargs['text'])仅使用一个字段进行过滤,例如我希望找到一些看起来像 django icontains 过滤器的东西。不仅需要查找全词匹配。
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

尝试使用正则表达式:


text = ".*{}.*".format(kwargs["text"])

titles = TitleDocument.search().query(

    "query_string",

    query=text,

    fields=["title", "slug", "page_title", "menu_title", "meta_description"],

)


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号