Skip to main content

模糊匹配 fuzzy

模糊查询使用基于 Levenshtein 编辑距离的相似性。

模糊查询生成在模糊度中指定的最大编辑距离内的匹配词,然后检查词词典以找出那些生成的词中哪些实际存在于索引中。最终查询最多使用 max_expansions 个匹配项。

这是一个简单的例子

GET /_search
{
"query": {
"fuzzy" : { "user" : "ki" }
}
}

或者使用更高级的设置:

GET /_search
{
"query": {
"fuzzy" : {
"user" : {
"value": "ki",
"boost": 1.0,
"fuzziness": 2,
"prefix_length": 0,
"max_expansions": 100
}
}
}
}

参数

fuzziness

最大编辑距离。默认为自动。请参见模糊性。

prefix_length

不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。默认为 0。

max_expansions

模糊查询将扩展到的最大术语数。默认为 50。

transpositions

是否支持模糊转置 (ab → ba)。默认为false。

tip

如果 prefix_length 设置为 0 且 max_expansions 设置为较大的数字,则此查询可能会非常繁重。它可能导致检查索引中的每个术语!