【问题标题】:elasticsearch - minimum_should_match + phrase queryelasticsearch - minimum_should_match + 短语查询
【发布时间】:2015-04-08 04:41:00
【问题描述】:

是否可以在短语查询中使用 minimum_should_match?例如,“quick brown dog”可以匹配 "I have a quick dog" 并且得分高于 "dogs run around but the cat is quick",假设斜率足够高且最小匹配为“2”。

我找不到任何这样的例子。如果短语匹配无法做到这一点,是否有其他方法可以做到这一点?

【问题讨论】:

  • 刚试过,好像不支持。所以真正的问题是如何以另一种方式实现这一目标。

标签: elasticsearch


【解决方案1】:

我看到有人支持这个问题,所以我会发布我是如何解决这个问题的。我将短语“quick brown dog”(#1)分成三个新短语“quick brown”(#2)“quick dog”(#3)和“brown dog”(#4)并应用这三个以及作为布尔查询的一部分的原始查询(每个都是“应该”子句)。

我给I have a quick dog 的第一个示例文档只匹配#3,而第二个文档不匹配其中任何一个。因此第一个文档会匹配,这就是我所追求的。

在此示例中,我希望最小单词匹配为 2 - 如果您需要更多,您将创建更大的带状疱疹。

仅供参考 - 我认为这也可能在搜索中使用 shingle 令牌过滤器 (https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-shingle-tokenfilter.html)。有关更多信息,请参阅Elastic search- search_analyzer vs index_analyzer。我没有尝试过,我不确定它是否适用于短语查询和 slop - 但如果可以的话,那就太好了。

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多