我有一个非常奇怪的案例,我不明白为什么会发生这种情况。这是查询的一部分。
"must": [
{
"multi_match": {
"query": "makkara",
"type": "best_fields",
"fields": ["text.general", "text.fi"],
"minimum_should_match": 10
}
}
]
text.general
field 是一个 trigrams 字段,这意味着它使用 ngram 过滤器进行分析,其中 max 和 min gram 为 3。基本上,有五个标记:“mak”、“akk”、“kka”、“kar”、“ara”。使用芬兰语分析器分析字段“text.fi”。我已经尝试过了,它返回“makkar”(实际上很愚蠢)。
所以问题在于这个最小值应该如何匹配。我不明白它的机制。一旦它变成 5,无论我放什么,它都会返回相同的结果。任何 >=5 都会返回相同的结果。有人可以解释为什么会这样吗?