docmd-search

中文文档
0.1.7发布于 2026/11/03MITTypeScriptES Module零依赖构建来源已验证

文档的离线语义搜索引擎。本地嵌入,浏览器就绪索引。

中文使用文档
文档目录16 节
  1. docmd-search
  2. 快速启动
  3. 正常使用安装
  4. 特性
  5. 默认为离线
  6. 即时搜索
  7. 小客户
  8. 内置功能
  9. 它是如何工作的
  10. 模型
  11. 配置(可选)
  12. 编程式的使用
  13. 项目结构
  14. 文档生态系统的一部分
  15. 社区与支持
  16. 许可证

docmd-search

能够理解含义并在浏览器中运行的搜索。
离线语义搜索任何文档站点。理解含义,完全在浏览器中运行,从不将数据发送到云端。

npm version downloads stars license

docmd-search preview

网站 • 文档 • 报告错误

快速启动

立即在任何文件夹上运行doc -search:

npx docmd-search ./docs

就是这样。

  • 文件被自动发现并分块
  • 嵌入在本地生成(没有云API)
  • 搜索可立即在终端

正常使用安装

npm install -g docmd-search
# Install ML dependencies (one-time)
npm install -g @huggingface/transformers onnxruntime-node
docmd-search ./docs          # index + interactive search
docmd-search ./docs --ui     # index + web UI
docmd-search --settings      # configure model

特性

设计为离线工作,不向浏览器发送任何东西,并且不妨碍您的方式。

默认为离线

  • 所有嵌入都是用ONNX Runtime在本地生成的
  • 没有数据离开您的机器
  • 不需要云API密钥
  • 渐进式索引:从第一批开始搜索
  • 增量:仅重新索引更改的文件
  • resume:中断的索引从上一个检查点恢复

小客户

  • 浏览器运行时为 < 3 kb gzip
  • 浏览器中没有模型权重
  • 混合评分:关键词匹配+向量相似度

内置功能

  • 多批索引格式与自动压缩
  • 为web ui生成导航树
  • 带有模型选择的首次运行安装向导
  • 具有实时结果的交互式终端搜索

它是如何工作的

Build time (Node.js)                    Search time (Browser, <3KB)
───────────────────                     ──────────────────────────
 Crawl files                             Load manifest.json
   → Chunk by heading                      → Load batch 000 (instant)
     → Embed via ONNX                        → Background-load rest
       → Quantize Float32 → Int8               → Keyword + cosine
         → Compress (ternary/PQ)                 → Ranked results
           → Save multi-batch index

模型

第一次运行提示您选择嵌入模型:

模型维大小最适合
mini ilm L6 v2 ★384~ 30 MB快速、通用
BGE小型(英文)384~ 45 MBEnglish-optimised
BGE基地(英文)768~ 110 MB更高质量的
MPNet Base v2768~ 110 MB多语言

稍后更改模型: docmd-search --settings

配置(可选)

开始时不需要任何配置。

全球 (~/.docmd-search/config.json):

{
  "model": "Xenova/all-MiniLM-L6-v2",
  "wizardCompleted": true
}

基于 (_docmd-search/config.json):

{
  "model": "Xenova/bge-small-en-v1.5",
  "chunkSize": 512,
  "include": ["**/*.md"],
  "exclude": ["**/drafts/**"]
}

配置解析:default→global→project→CLI flags。

编程式的使用

在脚本或CI管道中使用:

import { indexDirectory, loadAllBatches } from 'docmd-search';

const index = await indexDirectory({
  rootDir: './docs',
  outDir: '_docmd-search',
});

浏览器客户端:

import { load, search } from 'docmd-search/client';

await load('/path/to/_docmd-search');
const results = search('deploy kubernetes', 10);

项目结构

保持代码库扁平化和模块化。

src/
├── bin/docmd-search.ts   # CLI entry point
├── client/index.ts       # Browser runtime (<3KB)
├── config.ts             # Config + model profiles
├── index-io.ts           # Multi-batch format + compression
├── index.ts              # Barrel exports
├── indexer/
│   ├── chunk.ts          # Heading-aware chunking
│   ├── crawl.ts          # File discovery
│   └── index.ts          # Progressive pipeline
├── model.ts              # ONNX embedding manager
├── tui.ts                # Terminal UI
├── types.ts              # Core types
└── ui/
    └── launcher.ts       # Web UI via docmd

文档生态系统的一部分

文档搜索与任何文档项目独立工作。它还集成了 docmd 作为一个语义搜索插件。

工具它是做什么的
docmd零配置文档生成器
docmd-search离线语义搜索引擎

社区与支持

  • 欢迎踊跃投稿
  • 如果你觉得有用,考虑一下 赞助 或者主演回购⭐

许可证

麻省理工学院的许可。看到 LICENSE 获取详细信息。

版本与发布记录

docmd-search 共发布 10 个版本,首次发布于 2026/05/29;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.7latest2026/11/03今天
0.1.62026/09/271 个月前
0.1.52026/09/141 个月前
0.1.42026/09/141 个月前
0.1.32026/08/033 个月前
0.1.22026/08/033 个月前

关于 docmd-search 的常见问题

docmd-search 是什么?

文档的离线语义搜索引擎。本地嵌入,浏览器就绪索引。

如何安装 docmd-search?

在项目目录运行 npm install docmd-search,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 docmd-search,可以用 npx docmd-search 直接运行。

docmd-search 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

docmd-search 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

docmd-search 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

docmd-search 可以商用吗?

docmd-search 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

docmd-search 还在维护吗?

最新版本 0.1.7 发布于 2026/11/03(今天);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/05/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。