npm 包 @hypnosphi/fuse.js 使用教程

前言

在现代化的 Web 应用程序中,搜索功能已成为必不可少的工具,因此使用适当的算法来处理文本匹配的需求变得越来越普遍。@hypnosphi/fuse.js 是一个在 JavaScript 中实现的文本搜索库,它将一批对象(数组)与搜索字符串进行匹配。本文将介绍如何使用 @hypnosphi/fuse.js 实现强大的搜索功能。

安装

首先,需要在项目中安装 @hypnosphi/fuse.js。你可以在终端中键入以下命令:

--- ------- ------------------

配置

有许多属性可以用来配置 @hypnosphi/fuse.js 搜索的行为。以下是一些常用的选项:

keys

keys 是用于设置要搜索的属性的数组。如果没有提供,则默认情况下 @hypnosphi/fuse.js 会搜索每个对象的所有属性:

----- ------- - -
  ---------- ----
  ----- --------- ------------------ -----------
--

使用 keys 选项可以定制搜索的不同方面,这对于不同的搜索需求非常有用。

threshold

threshold 是搜索结果閾值的浮点数,范围从 0 到 1。较高的值导致更严格的搜索,更低的值导致更宽松的搜索。下面是一个使用 threshold 的示例:

----- ------- - -
  ---------- ---
--

distance

distance 定义了用于比较两个字符串之间的距离的算法。默认算法是 Damerau-Levenshtein 距离,但你也可以选择其它算法:

----- ------- - -
  --------- ---
--

tokenize

tokenize 是一个函数,用于将搜索字符串拆分为标记的数组,该数组作为搜索时要匹配的条目之一使用。默认情况下,tokenize 使用空格将搜索字符串拆分成单词:

----- ------- - -
  --------- ----
--

如果你需要自定义标记化方法,可以提供一个函数。以下是一个示例:

----- ------- - -
  --------- --- -- -
    ------ ---------------
  -
--

例子

以下是一个使用 @hypnosphi/fuse.js 的示例:

------ ---- ---- ---------------------

----- ----- - -
  -
    ------ ---- ----- --------
    ------- -
      ---------- ----------
      --------- ------------
    --
    --------- ---- ----- ------ -- - ----- ------- -- -------- ------ -- ----- -------------
    ----- ----------- ----------
  --
  -
    ------ ---- ------- ----- -- ----------
    ------- -
      ---------- ----------
      --------- ------- --------
    --
    --------- ---- ------- ----- -- -------- -- - ----- -- --------- ------ ------- ------ ----------
    ----- ----------- -------- ---------
  -
--

----- ---- - --- ----------- -
  ----- --------- ------------------- ------------------ ----------- --------
  --------------
  --------- ----
---

----- ------ - --------------------------

--------------------
--
-
    -
        --------- --
        ----- -
            ------ ---- ----- --------
            ------- -
                ---------- ----------
                --------- ------------
            --
            --------- ---- ----- ------ -- - ----- ------- -- -------- ------ -- ----- -------------
            ----- ----------- ----------
        --
        -------- -
            -
                -------- ----- -----
                ---- ------------------
                ------ -------------
                ----------- -
            -
        --
        ------ ----
    -
-
--

查询包含 Fitzgerald 的书籍。我们搜索字串 “Fitzgerald”,此时只有一本书可以匹配成功,它的 score 是 0.15。

结论

@hypnosphi/fuse.js 具有出色的性能,因为它使用 Levenshtein 距离算法进行模糊字符串搜索。在本文中,我们介绍了如何正确配置 @hypnosphi/fuse.js,以及如何使用它来执行文本搜索。包含完整用例的示例代码正在上面提供。现在你可以使用这个表示前端文本搜索解决方案的开源库来实现你的搜索需求。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055fc581e8991b448dd2d7


猜你喜欢

  • npm 包 zhuyutrisla-robot 使用教程

    简介 zhuyutrisla-robot 是一个轻量级、易于使用的 npm 包,用于创建聊天机器人。机器人拥有极高的定制性,可以指定识别和回答的关键词。 安装 你可以直接在终端中使用 npm 安装: ...

    3 年前
  • npm 包 “pyp” 使用教程

    在前端开发中,我们经常需要使用不同的工具和库进行项目开发。而 npm(Node Package Manager)是一个重要的工具之一,它提供了一个包管理系统,让我们可以方便地安装、更新和管理项目所需的...

    3 年前
  • npm 包 generator-apiai-lambda 使用教程

    generator-apiai-lambda 是一个基于 Yeoman 的 npm 包,用来生成一个 API.AI 的自然语言处理应用,并将其与 AWS Lambda 绑定。

    3 年前
  • npm 包 rosa 使用教程

    npm 是当前最流行的 JavaScript 包管理工具,而 rosa 则是一款基于 React 的 UI 组件库。本文将介绍如何使用 npm 安装 rosa,以及如何在项目中使用 rosa 提供的组...

    3 年前
  • npm 包 qcon 使用教程

    在前端开发中,我们常常需要处理异步操作、倒计时等问题。qcon 是一款高可用性的用于管理 Promise、async/await 和倒计时的 npm 包,本文将为你详细介绍其使用方法及示例代码。

    3 年前
  • npm 包 markdown-it-checkboxes 使用教程

    如果您经常使用 Markdown 文件进行文档编写,那么您一定经常需要使用复选框来标记任务列表、任务进度、备忘录等等。为了更加方便的实现 Markdown 文本中的复选框,我们可以选择使用npm 包 ...

    3 年前
  • npm 包 api-zero 使用教程

    什么是 api-zero api-zero 是一个能够帮助开发者简化和管理前端项目数据请求、数据模拟等操作的 npm 包。通过 api-zero,我们可以用简单的方式快速地搭建数据请求库,在前端项目中...

    3 年前
  • npm 包 @shuchun/demo-lib 使用教程

    在前端开发中,我们经常会使用各种开源库和工具来帮助我们构建应用程序。而 npm 是前端开发中非常常用的包管理工具,与此同时,也有许多优秀的 npm 包可以用于不同的开发需求。

    3 年前
  • npm 包 ng2-postcodeapi 使用教程

    前言 PostcodeAPI 是一个提供邮政编码和地址查询功能的 API。而 ng2-postcodeapi 就是一个 Angular 的封装,帮助 Angular 开发者更方便地使用 Postcod...

    3 年前
  • npm 包 unhandled-rejection-polyfill 使用教程

    引言 随着前端开发呈现多样化和复杂化,我们往往面临许多的技术挑战。其中一个具有挑战性的方面之一就是处理代码中的错误。在一些情况下,代码中的错误可能会被忽略,导致应用程序崩溃。

    3 年前
  • npm 包 cephalopod-sync-sharedarraybuffer 使用教程

    在前端开发中,有时需要在多个线程之间共享数据,以提高应用程序的性能。通过使用 SharedArrayBuffer,在不同的 Worker 中访问相同的内存片段,可以实现这一目标。

    3 年前
  • npm 包 @davidcdean/sf-meta-vers 使用教程

    在 Salesforce 开发中,操作 Metadata API 是很常见的一件事情。而在写代码的时候,我们经常需要使用到 metadata 对象的 API名称,这个时候,就需要使用 @davidc...

    3 年前
  • npm 包 config-module 使用教程

    在前端开发中,我们经常需要将一些配置信息和环境参数从代码中分离出来,以便于在不同的环境中进行配置和管理。npm 包 config-module 就是一个可以很方便地管理配置信息的工具,它支持多个环境的...

    3 年前
  • npm包one-test使用教程

    前言 随着前端技术的不断更新和发展,前端领域中的npm包已经成为了一种非常重要的工具。如果你在编写前端代码的过程中遇到了问题,相信总有一款npm包可以帮助你解决问题。

    3 年前
  • npm 包 oidc-provider-custom-logout 使用教程

    OIDC (OpenID Connect) 是一种认证协议,它建立在 OAuth 2.0 协议之上,用于在网络环境中进行身份认证及用户授权。 OIDC 提供方需要向客户端提供一些 API,以便客户端能...

    3 年前
  • npm 包 stdlib.js 使用教程

    介绍 Node.js 中一个非常有用的工具是 npm,它可以让开发者轻松地安装和管理依赖包。在前端开发中,我们也会使用一些 npm 包帮助我们完成一些任务。在这篇文章中,我们将介绍一个非常有用的 np...

    3 年前
  • NPM 包 react-native-metaui 使用教程

    React Native 是一款非常流行的跨平台移动应用框架,可以使用 HTML、CSS 和 JavaScript 等技术栈快速创建原生移动应用。不过,对于一些需要复杂交互和 UI 控件的项目,我们可...

    3 年前
  • npm 包 two-test 使用教程

    在前端开发过程中,经常需要进行单元测试和集成测试,这个时候一个好用的测试框架就显得尤为重要了。在 Node.js 生态圈中,最常用的测试框架是 Mocha,不过随着 npm 包的不断增加和更新,现在已...

    3 年前
  • npm 包 jsonresume-theme-kwan-nl 使用教程

    前言 在现代 web 开发中,前端技术非常重要。而在前端技术中,npm 包是开发者们必须掌握的一种工具。npm 包是 Node.js 包管理器;开发者们可以通过 npm 包管理器轻松安装、使用和更新 ...

    3 年前
  • npm 包 thing-it-device-kisi 使用教程

    什么是 thing-it-device-kisi thing-it-device-kisi 是一个适用于前端开发的 npm 包,支持使用 Kisi 门禁系统来实现设备控制和访问权限管理等功能。

    3 年前

相关推荐

    暂无文章