XERJ
XERJ 是 AI 原生搜索引擎,为代码、文档和数据建立索引,随后由索引而非上下文窗口回答智能体的提问。它兼容 Elasticsearch API,现有客户端无需改动即可连接,并以单个 Rust 二进制文件形式发布。
访问 xerj-org/xerj项目简介
XERJ 是一个 AI 原生搜索引擎,为代码、文档和数据建立索引,随后由索引而非上下文窗口回答智能体的提问。它使用 Elasticsearch API,并以单个 Rust 二进制文件的形式发布。
核心功能
- 单个 Rust 二进制,无 JVM,Apache-2.0 许可,同一构件从笔记本到服务器通用。
- autoindex 按内容嗅探 13 种格式家族,推断映射,把无用文件记录下来而不是报错,并支持可断点续传的幂等导入。
- AST 代码搜索使用 tree-sitter 解析 36 种语言的源码,提取符号、类型、行号和可搜索的定义字段。
- 混合检索支持 50 种查询类型,包括在单个查询树中融合原生 BM25 与 kNN。
- 兼容 Elasticsearch API,每次提交有 1,366 / 1,369 条 wire 一致性用例通过。
- 智能体记忆与图谱:带命名空间的 /_memory REST API,以及每条链接都带证据的 /_graph 知识层。
适用场景
- 参考编码:克隆并索引与任务最接近的开源仓库,在写代码前检索它们如何解决该问题。
- 代码库问答与 RAG:为仓库建立索引,得到含 file:line 的机制说明,而不是目录列表。
- 安全审计:为目标代码树建立索引,一次跨所有文件类型查询 sink 模式、密钥和危险调用。
- 智能体长期记忆:存储智能体学到的东西,并在之后的会话中按语义召回。
快速开始
- 使用一行安装命令安装 XERJ。
- 本地开发时用 xerj --insecure --data-dir ./data & 启动节点。
- 运行 xerj autoindex ~/my-project 按内容为文件夹建立索引。
- 用 xerj search 获取排序后的段落,用 xerj def 获取定义位置。
部署与要求
- 提供 Linux、macOS 和 Windows 的 x86-64 与 arm64 预编译版本。
- 默认使用静态 musl,因此可运行于包括 Alpine 在内的任何发行版。
- 无 JVM、无依赖;同一个静态二进制可从笔记本运行到服务器。
- 除使用 --insecure 外默认开启鉴权;启用鉴权时 autoindex 需要 --api-key 或 XERJ_API_KEY。
- 默认的词法嵌入器离线工作;神经模式需要在首次语义操作前把三个模型文件放到本地。
采用前须知
- 许可证:Apache-2.0。在使用、修改或分发项目前,请确认其具体条款。