【问题标题】:ElasticSearch "multi_match" and "minimum_should_match"ElasticSearch“multi_match”和“minimum_should_match”
【发布时间】:2018-08-02 22:01:59
【问题描述】:

我有一个非常奇怪的案例,我不明白为什么会发生这种情况。 这是查询的一部分。

      "must": [
        {
          "multi_match": {
            "query": "makkara",
            "type": "best_fields",
            "fields": ["text.general", "text.fi"],
            "minimum_should_match": 10
          }
        }
      ]

text.general 字段是一个 trigrams 字段,这意味着它使用 ngram 过滤器进行分析,其中 max 和 min gram 为 3。 基本上,有五个令牌: “mak”、“akk”、“kka”、“kar”、“ara”。 使用芬兰语分析器分析字段“text.fi”。我已经尝试过了,它返回“makkar”(实际上很愚蠢)。

所以问题在于这个最小值应该如何匹配。我不明白它的机制。一旦它变成 5,无论我放什么,它都会返回相同的结果。任何 >=5 都会返回相同的结果。 有人可以解释为什么会这样吗?

【问题讨论】:

标签: elasticsearch elasticsearch-1.7.5


【解决方案1】:

根据您的问题,搜索词“makkara”的两个字段的分析器生成的令牌数量

因此,任何大于 5 的 minimum_should_match 值仍然意味着必须存在所有 5 个术语。这就是为什么您看不到大于 5 的值的结果变化的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多