13个版本
0.10.1 | 2023年5月16日 |
---|---|
0.10.0 | 2022年12月30日 |
0.9.1 | 2022年12月18日 |
0.8.8 | 2022年11月22日 |
#577 in 文本处理
每月 43 次下载
430KB
5.5K SLoC
InfiSearch
静态网站的简单灵活的客户端搜索。
描述
InfiSearch是一个为静态网站设计的客户端搜索解决方案,依赖于由CLI工具生成的预构建索引。
特性
- 相关搜索 🔍: 拼写纠正,自动前缀搜索,布尔和短语查询,BM25评分,邻近度评分,分面过滤器等...
- 快速 🏇: WebAssembly & WebWorker驱动,实现高效、非阻塞的查询处理。通过持久化缓存最小化网络请求,并支持多线程CLI索引器。
- 半可扩展,通过可选地将索引分割成小块实现,并包含增量索引。
- 一个可自定义、易用的 用户界面 🖥️
- 支持多种文件格式(
.json,csv,pdf,html
),以满足更多定制数据需求。
文档
使用InfiSearch作为其搜索功能的文档可以在 这里 找到。
预览
一些在更大的Gutenberg集合上使用InfiSearch的演示也可以 在这里 找到。
入门
使用InfiSearch为静态网站提供搜索功能非常简单,只需一个HTML文件夹——标题、标题和其他文本会自动提取。根据您的文件夹结构自动生成您页面的链接,但也可以手动指定。
1. 安装索引器
安装索引器有几个选项
- 使用
npm install -g @infisearch/cli
全局安装npm包。 - 如果您已经设置好了 rust / cargo 工具链,请运行以下命令:
cargo install infisearch --vers 0.10.1
。 - 您也可以从这里下载 cli 二进制文件。
2. 运行索引器
按照以下方式运行可执行文件,将 <source-folder-path>
替换为您的源 HTML 文件的相对或绝对路径,将 <output-folder-path>
替换为您想要的索引输出文件夹。
infisearch <source-folder-path> <output-folder-path>
3. 通过 CDN 安装搜索 UI
将以下资源添加到您的页面中
<!-- Search UI script -->
<script src="https://cdn.jsdelivr.net.cn/gh/ang-zeyu/[email protected]/packages/search-ui/dist/search-ui.ascii.bundle.js"></script>
<!-- Search UI css, this provides some basic styling for the search dropdown, and can be omitted if desired -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/gh/ang-zeyu/[email protected]/packages/search-ui/dist/search-ui-light.css" />
如果您想托管文件,您可以在索引器生成的 <output-folder-path>/assets
目录中找到它们,或在 发布页面 中。
4. UI 初始化
给您的页面中的任何 <input>
元素分配一个 id
为 infi-search
的标识符,然后调用
infisearch.init({
searcherOptions: {
// Output folder URL specified as the second parameter in the cli command
// URLs like '/output/' will work as well
url: 'http://<your-domain>/output/',
},
uiOptions: {
// Input folder URL specified as the first parameter in the cli command
// This is where the generated result preview links will point to,
// and where you host your site.
sourceFilesUrl: 'http://<your-domain>/source/',
}
});
许可证
该项目受 MIT 许可 保护。
依赖项
35–47MB
~630K SLoC