纯 MoonBit 零 FFI 的本地全文检索与 RAG 检索库:中英日分词、BM25 倒排索引、向量索引、RRF 混合检索与 LLM 上下文组装,可编译为 wasm / wasm-gc / js / native 多后端。
# 添加依赖
moon add niuniu513-ask/MoonRetrievelet engine = @lib.Engine::new()
engine.add_document("guide", "MoonBit 是面向云边计算的编程语言。")
engine.add_document("faq", "RAG 是检索增强生成。")
let results = engine.search("RAG 是什么", top_k=3)
let cb = @lib.ContextBuilder::new(max_tokens=500)
println(cb.build("RAG 是什么", results))# 建索引
moon run cmd/main --target native -- index examples/notes demo-index.json
# 检索
moon run cmd/main --target native -- query demo-index.json "MoonBit 黑客松" -k 3
# 生成 LLM 上下文
moon run cmd/main --target native -- context demo-index.json "黑客松奖励" -k 3
# 索引统计
moon run cmd/main --target native -- stats demo-index.json
# 短语检索(可加 --highlight)
moon run cmd/main --target native -- phrase demo-index.json "MoonBit 黑客松" -k 3
# 布尔检索 / 前缀检索
moon run cmd/main --target native -- boolean demo-index.json "MoonBit AND RAG" -k 3
moon run cmd/main --target native -- prefix demo-index.json "moon" -k 3MoonRetrieve.mbt 包说明
tokenizer.mbt 分词器
chunker.mbt 分块器
index.mbt BM25 倒排索引
vector.mbt 向量索引与 RRF 融合
context.mbt LLM 上下文组装
engine.mbt 一站式引擎
cmd/main/ CLI
examples/notes/ 示例文档
docs/ 使用教程、申报书、差异化说明与自查清单moon test # 44 个测试(native / wasm-gc / js 由 CI 覆盖)
moon check
moon build --target wasm-gc
moon bench # 3 项基准(分词 / 建索引 / 检索)moon run examples/quickstart --target wasm-gcfn ContextBuilder::build(self : ContextBuilder, query : String, results : Array[SearchResult]) -> Stringfn IndexStats::new(doc_count : Int, term_count : Int, total_tokens : Int, avg_doc_len : Double) -> IndexStatsfn SearchIndex::search_boolean(self : SearchIndex, query : String, top_k? : Int) -> Array[SearchResult]fn SearchIndex::search_phrase(self : SearchIndex, query : String, top_k? : Int) -> Array[SearchResult]fn SearchIndex::search_prefix(self : SearchIndex, prefix : String, top_k? : Int) -> Array[SearchResult]Install
Download zip纯 MoonBit 零 FFI 的本地全文检索与 RAG 检索库:中英日分词、BM25 倒排索引、向量索引、RRF 混合检索与 LLM 上下文组装,可编译为 wasm / wasm-gc / js / native 多后端。