使用fuse.js模糊搜索 常用配置

2022-04-26 15:51:22 浏览数 (2)

fuse.js是一个轻量的模糊搜索库

安装

代码语言:javascript复制
npm install --save fuse.js

使用

代码语言:javascript复制
import Fuse from 'fuse.js'
const list = [...] // 带搜索的数据
const options = {keys:['name']} // 搜索配置,可以配置多个查找字段
const fuse = new Fuse(list, options);
return fuse.search('psr') // 根据模式返回搜索结果,形式如[{item:{匹配的对象},refIndex:0},...]

常用配置项目

配置项

描述

默认值

说明

isCaseSensitive

大小写敏感

false

includeScore

结果包含匹配度

false

结果值:0表示完全匹配,1表示完全不匹配

includeMatches

结果包含匹配字符的索引值

false

可用于高亮显示搜索字符的场景

minMatchCharLength

最小匹配长度

1

可用于需要至少几个字符才执行搜索的场景

shouldSort

结果集排序

true

结果集按照匹配度排序

findAllMatches

查找所有项目

false

即使找到了完全匹配项目也继续查找完其他所有项目

keys

查找字段配置

被查字段的路径(支持嵌套查找),权重(默认权重值为1),例如:[‘name.first’,{name:‘name.last’,weight:0.5}]

location

匹配的字符预期的位置

0

匹配到的字符距离指定位置越近分数越高

threshold

匹配度阈值

0.6

0.0表示完全匹配(字符和位置);1.0将会匹配所有值

distance

l匹配的字符在location指定位置的范围

100

0表示必须正好在location指定的位置

ignoreLocation

忽略location配置参数

false

location和distance都会被忽略

0 人点赞