是否可以在短语查询中使用minimum_should_match?例如,“快速棕色狗”可以匹配"I have a quick dog"
并且得分高于"dogs run around but the cat is quick"
,假设足够高的坡度和最小匹配“2”。
我找不到任何这方面的例子。如果短语匹配不能做到,有没有其他方法可以实现这一点?
答案 0 :(得分:1)
我看到有这个问题的赞成票,所以我会发布我接近它的方式。我接受了短语"快速的棕色狗" (#1)并将其分成三个新短语"快速棕色"(#2)"快速狗" (#3)和"棕色狗" (#4)并将这三个与原始作为bool查询的一部分应用(每个都是"应该"子句")。
我给的第一个示例文档I have a quick dog
只匹配#3,第二个文档不匹配任何一个。因此,第一份文件将匹配,这就是我所追求的。
在这个例子中,我希望最小单词匹配为2 - 如果你需要更多,你会创建更大的带状疱疹。
仅供参考 - 我认为在搜索中使用木瓦标记过滤器(https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-shingle-tokenfilter.html)也可能。有关详细信息,请参阅Elastic search- search_analyzer vs index_analyzer。我没有尝试这个,我不确定它是否适用于短语查询和slop - 但如果确实如此,它会很棒。