Fuse.js示例代码调用search无返回结果,请问原因是什么?
Fuse.js搜索返回空数组的原因及解决办法
问题原因
- 默认大小写敏感:Fuse.js默认区分大小写,你搜索的
'od man'里的'man'是小写,而目标数据中对应的是大写开头的'Man',这直接导致该部分无法匹配。 - 匹配阈值限制:即使忽略大小写,Fuse.js默认的
threshold(匹配阈值)为0.6,'od'与'Old'的编辑距离对应的匹配分数接近或超过了这个阈值,导致整体匹配不通过,因此返回空数组。
解决办法
修改配置项,关闭大小写敏感并按需调整匹配阈值:
const options = { includeScore: true, isCaseSensitive: false, // 关闭大小写敏感 threshold: 0.4 // 降低阈值,允许更大的匹配差异 }
调整后再执行搜索'od man',就能正确匹配到"Old Man's War"这条数据。
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

