原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/query-dsl-fuzzy-query.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/query-dsl-fuzzy-query.html
本地英文版地址: ../en/query-dsl-fuzzy-query.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
根据莱温斯坦编辑距离,返回包含与搜索词相似的词项的文档。
编辑距离是将一个词转换成另一个词所需的单个字符的变化次数。这些变化包括:
- 改变一个字符 (box → fox)
- 删除一个字符 (black → lack)
- 插入一个字符 (sic → sick)
- 调换两个相邻的字符 (act → cat)
为了找到相似的词,fuzzy
查询在指定的编辑距离内创建搜索词的所有可能变化或扩展的集合。
然后,该查询返回每个扩展的精确匹配。
-
value
-
(必需, string) 你想在指定的
<field>
中搜索的词。 -
fuzziness
- (可选, string) 匹配允许的最大编辑距离。有效值及更多信息请参考 模糊性。
-
max_expansions
-
(可选, integer) 可创建的最大变形词的数量。 默认为
50
。避免在
max_expansions
参数中使用很大的值,尤其是当prefix_length
参数值为0
时。 一个很大的max_expansions
参数值可能会导致性能下降,因为要检查大量的变形词。 -
prefix_length
-
(可选, integer) 创建扩展时,开头字符保持不变的数量。默认为
0
。 -
transpositions
-
(可选, boolean) 指示编辑是否包括两个相邻字符的换位 (ab → ba)。默认为
true
。 -
rewrite
-
(可选, string) 用于重写查询的方法。 有效值及更多信息请参考
rewrite
参数。
如果 search.allow_expensive_queries
设置为false,将不会执行模糊查询。