首页 > 其他分享 >【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

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

时间:2023-10-12 10:46:57浏览次数:36  
标签:OpenHarmony tags fuse js 开源 Fuse 搜索

 

开源项目 OpenHarmony

是每个人的 OpenHarmony

曹天恒

公司:中国科学院软件研究所

小组:知识体系工作组

 

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 Fuse.js源码:

https://gitee.com/pommejason/isrc_fuse.js

标签:OpenHarmony,tags,fuse,js,开源,Fuse,搜索
From: https://www.cnblogs.com/openharmony/p/17758920.html

相关文章

  • 对于ogg19 mysql 中如果mysql中存在json数据类型,进程会abend问题报错信息 OGG-00774
    对于ogg19mysql是不支持json的这个数据类型还是比较常见的,这个数据类型是在ogg21才开始支持,对于这种报错可以打补丁进行修复Bug29998662:MySQLExtractAbendsWithoutErrorwithJSONdatatypesinbinlog 参考自:MySQLExtractAbendsWithoutErrorWithJSONDataT......
  • json-server
    使用json-server可以模拟和测试前端应用程序的HTTP请求和数据交互。1、在项目中创建一个json文件2、下载npminstall -gjson-server//为了避免全局依赖可能引发的版本冲突问题,也可以局部下载3、查看下载版本npxjson-server-v4、启动在json文件目录下执行npxjs......
  • json_encode return false
    json_encodereturnfalse怎么办if(!json_encode($result,JSON_PARTIAL_OUTPUT_ON_ERROR)){ var_dump(json_last_error());//打印上一次的错误代码:int(5) //所有字符串数据的编码必须是UTF-8。 //mb_convert_encoding($str,"UTF-16");//把字符串转为utf-16编码 echo......
  • 【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户
    问题描述在AppService上放置一个JS页面并引用msal.min.js,目的是获取AAD用户名并展示。问题解答示例代码<!DOCTYPEhtml><html><head><title>AzureService</title></head><scripttype="text/javascript"src="https://alcdn.msauth.net/......
  • 【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户
    问题描述在AppService上放置一个JS页面并引用msal.min.js,目的是获取AAD用户名并展示。问题解答示例代码<!DOCTYPEhtml><html><head><title>AzureService</title></head><scripttype="text/javascript"src="https://alcdn.msauth.net/lib/1.......
  • package.json
    package.json和package-lock.json文件的区别:-`package.json`是项目的配置文件,包含项目的元数据、依赖关系信息以及脚本命令的配置,是开发者手动维护的文件。-`package-lock.json`是由`npm`自动生成和维护的,用于锁定项目依赖包的确切版本以确保在不同开发环境中的一致性......
  • JS实现判断点是否在多边形范围内
    JS实现判断点是否在多边形范围内 一、说明在GIS领域,判断点是否在多边形范围内是一个基础方法,这里主要说下实现原理。原理比较简单,就是有一个GIS理论,一个点向一个方向发送射线,射线与多边形各个边相交的交点如果是奇数说明点在多边形范围内。 (图片引用自:https://blog.cs......
  • 2023.10.10 js.Array和js.String
    1定义数组21.vararr=newArray{1,2,3,4...};32.vararr=[1,2,3,4];4访问5arr[索引]=值67同一数组的类型可变,长度可变。89Array中的属性和方法10arr.length//获取数组长度11forEach()遍历数组中的每个有值的元素,并调用一次传入的函数12arr......
  • 2023.10.11 js.JSON和js.BOM
    1定义2var变量名='{"key1":value1,"key2":value2}'3varuser='{"字符串":"tom","整型"=20,"数组":["北京","上海","深圳"],"对象":{},"布尔值"......
  • js 多文件下载打包zip 重名问题
    这里用jszip实现多文件下载并打包zip,但是这里有个问题,项目是可以上传重名文件,也就是下载也必须全部下载。jszipblob以文件名称(filename)下载的话,同名多个文件是会被忽略掉的,也就是只下载一个,而我们的需求是全部下载,问题也是困扰了很久。如果名称可以重复,那么可以试试用地址(file......