当前位置: 首页 > news >正文

【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

1.简介

Fuse.js是一款功能强大且轻量级的JavaScript模糊搜索库,支持OpenAtom OpenHarmony(以下简称“OpenHarmony”)操作系统,它具备模糊搜索和排序等功能。该库高性能、易于使用、高度可配置,支持多种数据类型和多语言搜索,适用于各种场景,如搜索引擎、电子商务网站和数据可视化,可以帮助用户在包含大量数据的环境中快速地找到相关的搜索结果,并支持高度可定制化的搜索选项。

2.开发环境

安装IDE:支持DevEco Studio 4.0 Beta2(Build Version 4.0.0.400)版本。安装SDK:OpenHarmony API version 9及以上版本。

3.使用方法

使用前需要先安装ohpm-cli请参考安装教程:https://ohpm.openharmony.cn/#/cn/help/quickstart

1、  下载@isrc/fuse.js组件

ohpm install @isrc/fuse.js –-save

2、  在page页面导入

import Fuse from "@isrc/fuse.js"

3、  准备数据集

// 创建一个包含书籍信息的列表数组,作为待搜索的数据
var list = [{"title": "Old Man's War","author": "John Scalzi","tags": ["fiction"]},{"title": "The Lock Artist","author": "Steve","tags": ["thriller"]}
]

4、创建搜索实例

// 配置搜索选项,包括启用分数计算和指定搜索的键(作者和标签)
var options = {includeScore: true,// 在 'author' 和 'tags' 数组中进行搜索keys: ['author', 'tags']
}// 创建一个 Fuse 搜索实例,将列表和选项传递给它
var fuse = new Fuse(list, options)
5、执行搜索,如下示例,搜索结果会存储到result变量中
// 使用 Fuse 搜索实例执行搜索,查找包含 'tion' 的结果
var result = fuse.search('tion')
搜索结果数据结构(result变量内容)示例如下:
[{"item": {"title": "Old Man's War","author": "John Scalzi","tags": ["fiction"]},"refIndex": 0,"score": 0.03}
]

可以将变量传入相应显示控件,进行搜索结果展示。Fuse.js支持的搜索配置选项还包括:

更多使用方式和接口可参考库的使用文档:https://ohpm.openharmony.cn/#/cn/detail/@isrc%2Ffuse.js

4.结语

通过本篇文章介绍,您对OpenHarmony Fuse.js组件应该有了初步的了解。我们所有的源码和指导文档都已经开源,如果您对本篇文章内容以及所实现的Demo感兴趣,可以根据本篇文章介绍自行下载OpenHarmony Fuse.js源码进行研究和使用。同时也欢迎更多开发者与我们共享开发成果,分享技术解读与经验心得。

如果大家想更加深入的学习 OpenHarmony 开发的内容,不妨可以参考以下相关学习文档进行学习,助你快速提升自己:

OpenHarmony 开发环境搭建:https://qr18.cn/CgxrRy

《OpenHarmony源码解析》:https://qr18.cn/CgxrRy

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……

系统架构分析:https://qr18.cn/CgxrRy

  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

OpenHarmony 设备开发学习手册:https://qr18.cn/CgxrRy

在这里插入图片描述

OpenHarmony面试题(内含参考答案):https://qr18.cn/CgxrRy

http://www.lryc.cn/news/362240.html

相关文章:

  • vue从入门到精通(六):数据代理
  • 【C++修行之道】类和对象(二)类的6个默认成员函数、构造函数、析构函数
  • 【LeetCode热题100总结】239. 滑动窗口最大值
  • 【YOLOv9改进[Conv]】使用YOLOv10的空间通道解耦下采样SCDown模块替换部分CONv的实践 + 含全部代码和详细修改内容
  • 简单小游戏制作
  • Delphi
  • Linux的shell脚本中的比大小
  • 每日复盘-20240603
  • adb server version (22000) doesn‘t match this client (41); killing...
  • 如何使用 Connector API 将数据提取到 Elasticsearch Serverless 中
  • 体育赛事直播系统开发源码搭建
  • 使用Jmeter进行性能测试
  • AI技术的发展,会让你工作轻松吗
  • Spring-DI入门案例
  • ubuntu18.04 报错:fatal error: execution
  • 开源大模型与大模型api的使用优缺点
  • 小红书前端2轮面试期望22K,全程问低代码设计
  • HIK录像机GB28181对接相机不在线问题随笔
  • stm32-DMA转运数据
  • Java编程常见问题汇总一
  • 用Unityhub安装unity2018.3.0和vuforia
  • 智汇云舟与芯瞳完成兼容适配,共建国产化生态体系
  • 「动态规划」最大子数组和
  • 【LeetCode 130. 被围绕的区域】
  • 超市管理系统设计1——基本功能设计
  • 前端性能优化总结笔记
  • 51种企业应用架构模式详解
  • 零基础入门学习Python第二阶04SQL详解03
  • 【第二节】C/C++数据结构之线性表
  • 千帆 AppBuilder 工作流编排功能直播总结