我正在尝试为我在Elasticsearch中进行的项目测试一些测试用例。模糊性查询给出的结果在特定情况下令人困惑: 在多匹配查询中搜索具有模糊性2的 Mall 关键字时,其也匹配 Mile 。
As per fuzziness documentation :-
=> 0 edits are allowed for string length is 0-2 .
=> 1 edit is allowed for string length is 3-5.
=> 2 edits are allowed for string length greater than 5.
如果是这种情况,为什么 MILE 与 MALL 相匹配,因为按照逻辑,只允许进行一次编辑,如果我们看到MALL-> MILE,则需要2次修改。 Elasticsearch表现是否符合预期,还是我在这里错过了一些东西? 我正在为该字段使用简单的空格分析器,并使用
查询 { "query": {
"multi_match": {
"query": "mall",
"fields": [
"name"
],
"fuzziness": 2
} }}
答案 0 :(得分:2)
突出显示的文档仅适用于您指定"fuzziness": "AUTO"
的情况,否则,如果您指定常规数字(0、1或2),则该数字将被考虑(在您的情况下为2)< / p>