【问题标题】:Can a contains search be made in ElasticSearch in the search query?可以在搜索查询中的 ElasticSearch 中进行包含搜索吗?
【发布时间】:2021-04-23 22:10:48
【问题描述】:

我创建了一个Django项目来学习ElasticSearch,当我在这个项目中搜索用户时,当我准确输入用户的用户名时,返回结果。我可以将它设置为包含在 Django ORM 中吗?

我使用“匹配”是因为我知道它。

q = request.GET.get('q')
users = UserDocument.search().query("match", username=q)

【问题讨论】:

  • 您有没有机会仔细阅读我的回答,如果有帮助,请点赞并接受。

标签: django elasticsearch elasticsearch-dsl


【解决方案1】:

匹配查询使用与您正在搜索的字段的索引时间相同的分析器,例如,您在 username 的示例中搜索并且如果您已将 username 定义为 text 字段在没有任何显式分析器的情况下,match 查询将使用text 字段的默认分析器standard analyzer,它根据空格拆分令牌并删除特殊字符。

您可以将使用Analyze API 生成的标记发短信,以支持包含用例,您需要定义一个分析器来生成您的搜索词标记,如果您可以分享一些示例文档和您的搜索词,那就太好了这样我们就可以提供一些工作示例。

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2015-11-23
    • 2018-12-29
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多