Frolics是一个脱机,轻巧的全文搜索库,用于前端应用程序。
Frolics受到Elasticsearch和Lucence的启发,基础实现包括文本处理算法和数据结构,例如令牌化,茎和倒置索引。
提供docs后,Frolics会相应地创建开启索引数据,该数据广泛用于主要的全文搜索服务,例如Elasticsearch和Google Search。
从现在开始,您可以省略繁重的安装过程来进行全文搜索,甚至更好,您可能不再需要后端来开发此类功能。
Frolics在这里提供帮助!
在安装Frolics之前,请确保您的节点版本兼容。节点V12+还可以,但建议使用节点V16。
但是,当我在ReactJ中测试Frolics时,节点V17+存在兼容性问题。但是节点V16工作良好。
完成后。在终端运行npm install frolics 。
导入之前,需要一个原始数据。看起来应该这样:
const docs = [
{
id: 1,
body: 'this is a test full text'
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
请记住,需要独特的id和文本内容body字段,因为id区分每个文档,并且body是Frolics需要分析和对文本数据进行分析以进行搜索的内容。
根据需要body id ,您可以使用多个功能的字段。例如,如果您在搜索时想要预览图像,则可以更改这样的docs :
const docs = [
{
id: 1,
body: 'this is a test full text',
// imagesURL field is totally optional, you can have different name and data structure
imagesURL: 'https://yourImage.com/img1.png',
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
定义docs后,我们都设置了。下一步是使用Frolics。
Frolics支持ES6语法,因此您可以这样导入:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
现在您可以像这样调用createDTM :
const DTM = createDTM(docs);
createDTM是获取docs并创建倒置索引字典的主要函数。
您可以用Stemmer修剪原始输入以获得搜索结果
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
有关详细的示例,请访问示例文件夹。
createDTM函数返回的是倒置索引字典。它可以使用简单的JavaScript内置函数JSON.stringify方法将其转换为人类可读的JSON格式。
您可以根据框架选择任何文件读取方法,并在调用createDTM函数之前加载JSON文件(如果存在)。