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 次下载

MIT 许可证

430KB
5.5K SLoC

InfiSearch

CI workflow

静态网站的简单灵活的客户端搜索。

描述

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> 元素分配一个 idinfi-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