我们非常高兴地发布 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