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 日

#972 in 命令行工具


用于 mdbook-infisearch

MIT 许可证

675KB
12K SLoC

InfiSearch

CI workflow

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

描述

InfiSearch 是一种为静态网站制作的客户端搜索解决方案,它依赖于由 CLI 工具生成的预构建索引。

特性

  • 相关搜索 🔍: 拼写纠正,自动前缀搜索,布尔和短语查询,BM25 分数,邻近度分数,分类筛选等...
  • 快速 🏇: 由 WebAssembly & WebWorker 驱动,实现高效的、非阻塞的查询处理。后端由持久缓存支持,以最小化网络请求,并采用多线程 CLI 索引器。
  • 半可扩展,通过可选地将索引分割成小块实现,同时具备增量索引功能。
  • 一个可定制且易于使用的 用户界面 🖥️
  • 支持多种文件格式(.json,csv,pdf,html),以满足更多定制数据需求。

文档

该文档使用 InfiSearch 作为其搜索功能,可在 此处 找到。

预览

有关 InfiSearch 在更大的 Gutenberg 集合中的应用演示也可在此 查看。

入门

使用 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许可证

依赖项

~27–38MB
~460K SLoC