它解決什麼問題
當 AI 代理(如 Claude Code 或 Cursor)處理大型代碼庫時,傳統做法往往是讓模型逐行讀取檔案或依賴簡單的關鍵字搜尋。這不僅導致 Token 消耗量巨大、成本高昂,還容易因上下文視窗限制而遺漏關鍵資訊,造成回答不準確或產生幻覺。
XERJ 旨在解決這一痛點。它作為一個本地優先的搜尋引擎,讓 AI 代理能夠快速、精確地檢索代碼、文件、日誌和規格書,僅提取最相關的片段,從而大幅降低 Token 使用量並提升回答的準確性。
運作原理與主要功能
XERJ 是一個單一的 Rust 執行檔,無需依賴 JVM 或其他重型基礎設施。它能自動索引指定資料夾中的代碼、文件(PDF)、日誌和結構化數據(JSONL/CSV)。其核心功能結合了 BM25 全文搜尋、向量搜尋(kNN)以及混合搜尋模式,並提供代碼定義跳轉(go-to-definition)和代理記憶(Agent Memory)功能。
它透過 Elasticsearch 相容的 API 運作,並原生支援 MCP(Model Context Protocol),這意味著它可以無縫整合進支援 MCP 的 AI 開發環境中。預設情況下,它使用離線詞彙嵌入(lexical embedding),若需更強大的語意理解,也可選擇下載神經網路嵌入模型。
和常見做法的差別
| 面向 | 常見做法 | 這個專案 |
|---|---|---|
| 搜尋方式 | 逐行讀取檔案或簡單 grep | BM25 + 向量混合搜尋,支援代碼定義跳轉 |
| 部署架構 | 依賴雲端 API 或重型搜尋引擎(如 Elasticsearch) | 單一 Rust 靜態執行檔,本地優先,無 JVM 依賴 |
| AI 整合 | 手動拼接上下文,Token 消耗高 | 原生 MCP 支援,自動提取相關片段,大幅節省 Token |
| 資料隱私 | 資料需上傳至雲端處理 | 完全本地化處理,資料不出本機 |
適合誰
適合需要在本機處理大型代碼庫、希望降低 AI 代理 Token 成本並提高檢索精度的開發者與團隊。特別適用於需要讓 AI 代理參考開源專案解決方案(Reference Coding)的場景。
不適合極小專案或僅需簡單關鍵字搜尋的使用者,因為其索引建立流程相對厚重。需注意目前版本為 RC(Release Candidate),API 可能存在變動風險。授權為 Apache-2.0,所有資料處理均在本地進行,隱私性高。
本站實測
本站在 RTX A6000 48 GB 工作站上實際安裝並執行 XERJ(2026-11-03),共 9 個步驟,全部成功。實測顯示,索引 2 個檔案僅需 1.7 秒,並能透過 Elasticsearch 相容 API 成功取得帶行號的搜尋結果。詳細的安裝過程與效能測試請參考本站另兩篇實測文與教學文。
專案頁:github.com/xerj-org/xerj(授權 Apache-2.0)

