v0.9.3 is live! — Read the latest technical documentation and migration guides.

我们非常高兴地发布 docmd-search 的第一个 Alpha 预览版本。

docmd-search 是一个专为文档站点打造的语义搜索引擎。它完全在浏览器中运行,无需服务器或 API 密钥,并将所有搜索处理保留在本地。

虽然它是为 docmd 创建的,但它并不绑定于任何特定框架。它可以集成到各种文档平台、网站和 Web 应用程序中。

这是一个早期 Alpha 版本。随着我们收集反馈和实际使用情况,API、模型和行为将继续演进。

本次发布包含的内容

核心引擎

  • 本地语义索引 - 在构建时使用 Xenova/all-MiniLM-L6-v2 生成向量嵌入,由 @xenova/transformers 驱动
  • 浏览器端搜索 - 排序和检索完全在浏览器中使用预构建的索引进行
  • 切片分块索引 - 内容被切分为可配置的重叠分块,以提高长页面上的搜索质量
  • 多版本支持 - 文档版本可以独立索引并一起搜索

CLI 命令行

docmd-search

将 Markdown 文件目录索引到 .docmd-search/ 中。

docmd-search --ui

使用现有索引启动独立的搜索 UI,无需重新构建。

附加选项:

--output
--model
--chunk-size
--chunk-overlap

搜索 UI 选项

选项 默认值 说明
semantic false 启用语义搜索
showConfidence false 在结果上显示置信度百分比
showFilters true 显示版本筛选栏
indexDir - 使用现有的预构建索引

自动降级处理

如果未安装 docmd-search@docmd/plugin-search 会自动降级为关键字搜索。无需任何额外配置,文档仍可完全进行全文搜索。

已知局限性

  • 默认模型在英文内容上表现最佳
  • 多语言模型可用,但尚未经过广泛测试
  • 当内容更改时,目前需要重新完整索引
  • 第一次搜索可能需要更长时间,因为浏览器需要加载模型和搜索索引
  • 加载模型时,浏览器内存使用量通常在 50-100 MB 之间

下一步计划

我们目前正在探索:

  • 增量索引更新
  • 改进的多语言支持
  • 更小和更轻量的量化模型变体
  • 附加的排序信号与相关性改进
  • 可以在 docmd 之外使用的独立搜索 UI