@dreb/semantic-search

中文文档
2.83.0发布于 2026/11/13MITTypeScriptES Module构建来源已验证近 30 天下载 3768

具有嵌入式排名和MCP服务器的语义编码库搜索引擎

中文使用文档
文档目录8 节
  1. 所需资源
  2. 安装
  3. 克劳德代码插件
  4. MCP 服务器
  5. 排名如何运作
  6. 图书馆 API
  7. 何为索引
  8. 许可证

@dreb/语义搜索

有嵌入式排名和MCP服务器的语义编码库搜索引擎. 利用树套进行AST-感知分块和变压器嵌入模型提取和索引编码(全米-米尼LM-L6-v2),然后通过POEM对结果进行6-信号聚变排序.

所需资源

  • 节点.js 26 LTS (单位:千美元)^26.13.0)——使用内置 node:sqlite 模块

安装

npm install @dreb/semantic-search

克劳德代码插件

包船作为克洛德代码插件. 添加 dreb 市场并安装 :

/plugin marketplace add aebrer/dreb
/plugin install semantic-search@dreb

或来自CLI的会外:

claude plugin marketplace add aebrer/dreb
claude plugin install semantic-search@dreb

或者,在没有插件系统的情况下直接注册 MCP 服务器:

claude mcp add --transport stdio semantic-search -- npx @dreb/semantic-search semantic-search-mcp

对于本地开发的克隆回波:

claude --plugin-dir ./packages/semantic-search

MCP 服务器

包裹会暴露一个 search 工具在“示范背景协议”(stdio transport)之上。 该工具接受:

参数需求说明
query对自然语言、标识符或路径查询
searchDir对索引和搜索目录——每个独特的值都获得自己的独立索引
restrictToDir没有过滤结果到已建索引中此路径下的文件( 不影响索引编制)
limit没有返回的最大结果( 默认: 20)
rebuild没有强制重建干净的索引( 默认: 假)

单独启动服务器 :

npx @dreb/semantic-search semantic-search-mcp

排名如何运作

6个独立信号使用 邮政 (Pareto-Optimal 嵌入式建模)每个查询类型变化的权重:

信号说明
BM25型导弹通过 FTS5 全文搜索进行关键字匹配
余弦相近性使用全MiniLM-L6-v2嵌入基于语义的相似性
路径匹配查询文件路径中的术语
符号匹配查询匹配函数、类或类型名称的术语
导入图接近导入/ 依赖图中高分文件
Git 惯性最近修改的文件排名更高

查询自动分类为 标识符, (中文(简体) ), 自然语言,或 路径 查询,每个类型应用不同的POEM列加权. POEM在所有信号维面上构建出一个Pareto前方并基于支配地位深度分配等级——不需要手动重心调制. 见 平面嵌入式建模 为理论基础.

图书馆 API

import { SearchEngine } from "@dreb/semantic-search";

const engine = new SearchEngine("/path/to/project", {
  indexDir: "/custom/index/path",         // default: <projectRoot>/.search-index
  globalMemoryDir: "~/.dreb/memory",      // additional directory to index
  modelCacheDir: "~/.cache/models",       // default: ~/.cache/semantic-search/models
  visibleDirs: (root) => [`${root}/.special`], // extra dirs (bypasses .gitignore)
});

// First call builds the index (10-60s); subsequent calls are fast
const results = await engine.search("where is auth handled", {
  limit: 20,
  pathFilter: "src/",
  onProgress: (phase, current, total) => console.log(`${phase}: ${current}/${total}`),
});

const stats = engine.getStats();    // { files, chunks } | null
await engine.resetIndex();          // delete index, next search rebuilds
await engine.close();               // dispose resources
SearchEngine.isAvailable();         // check for node:sqlite

何为索引

  • 代码 ——树保姆AST块(功能,类,方法,界面等). TypeScript, JavaScript, Python, Go, Rust, Java, C, C++, GDScript. 星洲网.
  • 文本 - Markdown(按标题)、YAML/TOML(按键)、JSON、简写(按段落)。 还索引了戈多特场景(.tscn资源(.tres)和项目(.godot)文件为平正文本.
  • 额外目录 通过 globalMemoryDir 或者说 visibleDirs,即使被扫描.

索引存储于 .search-index/search.db 项目根( 添加 .search-index/ 改为 .gitignore) (中文(简体) ).

许可证

麻省理工学院

版本与发布记录

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

版本发布日期距今
2.83.0latest2026/11/13今天
2.82.02026/11/112 天前
2.81.02026/11/102 天前
2.80.02026/11/103 天前
2.79.12026/11/103 天前
2.79.02026/11/076 天前

关于 @dreb/semantic-search 的常见问题

@dreb/semantic-search 是什么?

具有嵌入式排名和MCP服务器的语义编码库搜索引擎

如何安装 @dreb/semantic-search?

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

@dreb/semantic-search 支持 TypeScript 吗?

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

@dreb/semantic-search 支持 ESM 还是 CommonJS?

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

@dreb/semantic-search 需要什么版本的 Node.js?

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

@dreb/semantic-search 可以商用吗?

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

@dreb/semantic-search 的下载量有多少?

根据 npm 官方下载统计,@dreb/semantic-search 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,768 次,日均约 126 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dreb/semantic-search 还在维护吗?

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