简介

Fuse.js 是一个用于 JavaScript 的轻量级模糊搜索库,它允许在给定一组数据时执行模糊搜索和排序操作。

安装

  • 使用npm安装
npm install fuse.js
  • 在浏览器中使用script标签引入
<script src="https://unpkg.com/fuse.js/dist/fuse.min.js"></script>

使用

  • 导入fuse.js
import Fuse from "fuse.js";
  • 数据
let books = [
  {
    title: "数据结构和算法(Python和C++语言描述)",
    author: "戴维·M.瑞德",
  },
  {
    title: "用Go语言自制解释器",
    author: "索斯藤•鲍尔",
  },
  {
    title: "图解人工智能",
    author: "多田智史",
  },
  ...
];

使用准备好的数据集创建一个Fuse实例。 可以在创建实例时指定一些配置选项,例如搜索的键、搜索的模式等。

  • 选项
let options = {
  // 搜索的键
  keys: ["title", "author"],
  // 搜索结果的数量
  includeScore: true,
  // 搜索结果的阈值
  threshold: 0.4,
};
  • 创建Fuse对象
let fuse = new Fuse(books, options);
  • 搜索

现在,可以使用Fuse实例执行模糊搜索。 通过调用search方法并传入搜索查询,将获得一个包含与查询匹配的结果数组。

let result = fuse.search("Go语言");
  • 结果

根据搜索结果对应用程序进行相应的操作。 例如,可以将搜索结果显示在界面上。

Fuse.js不仅可以返回匹配的结果,还可以返回每个结果的匹配程度。 这些匹配程度称为score,它是一个介于01之间的数字,表示结果与查询的匹配程度。 不仅包含完全匹配的结果,还包含模糊匹配的结果。

[
  {
    item: {
      title: "用Go语言自制解释器",
      author: "索斯藤•鲍尔",
    },
    refIndex: 1,
    score: 0.4,
  },
  ...
]

请注意,上述示例仅用于展示 Fuse.js 的基本用法,并不包含完整的 Fuse.js 功能。

要了解更多关于 Fuse.js 的详细信息和更高级的用法,请参考 Fuse.js 的官方文档。

参考