【问题标题】:ElasticSearch: term vs match query decisionElasticSearch:术语与匹配查询决策
【发布时间】:2021-11-11 18:27:37
【问题描述】:

刚接触 ElasticSearch,需要帮助我理解。

我读到的关于术语与匹配查询的内容是术语查询用于精确匹配,而匹配查询用于搜索术语并希望基于相关性分数的结果。

但是,如果我们已经将字段的映射定义为关键字,为什么任何人都必须在术语与匹配之间做出决定,如果映射被定义为关键字,不总是一个术语查询吗?

在什么情况下有人会在关键字映射字段上进行匹配查询?

反之亦然。

【问题讨论】:

    标签: elasticsearch opensearch term-query


    【解决方案1】:

    一个text字段会被分析(转换、拆分)生成N个token,keyword本身会变成一个没有转换的token。最后,你有 N 个标记引用一个文档。

    那么。 通过执行匹配查询,您也可以将查询视为文本,在执行匹配(转换)之前对其进行分析,而术语不会。

    您可以使用术语映射创建一个字段,然后在其之上执行匹配查询(例如,如果您希望不区分大小写),您可以为 n-gram 创建文本映射并执行术语查询以完全匹配您的要求。

    【讨论】:

    • 抱歉,还是不太清楚。您能否详细说明一个不区分大小写的示例?我相信以一种有效的方式定义不区分大小写的搜索,您需要定义一个分析器(有效地分析映射和查询)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多