项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1822
使用教程
环境要求
- Python 环境(README 未指定最低版本,建议 3.9+)
- pip 或 uv 包管理工具
- 如需 MCP 服务接入 Claude Desktop,需安装 uv 并准备好本地索引目录
- 如需低内存检索,磁盘可存放导出的索引文件
安装与启动步骤
-
1安装 bm25s
用 pip 安装 bm25s 本体,这是最小安装,只包含 numpy 等最基础依赖。
pip install bm25s -
2安装核心依赖
README 强烈推荐,包含 json 加载、进度条、词干提取与 JIT 编译等核心能力。
pip install "bm25s[core]" -
3可选安装词干提取
如果只想用词干提取提升检索效果,可单独安装 PyStemmer。
pip install PyStemmer -
4可选安装全部扩展
安装所有额外依赖,体积更大但功能最全;也可单独装 CLI 扩展获得彩色交互选择器。
pip install "bm25s[full]" pip install "bm25s[cli]" -
5验证导入
导入 bm25s 不报错即表示库安装成功;若失败请检查 Python 环境与 pip 版本。
python -c "import bm25s" -
6加载索引检索
用 BM25HF 从 Hugging Face Hub 加载索引与语料,mmap=True 走内存映射以显著降低内存占用。
import bm25s import Stemmer # optional: for stemming retriever = bm25s.BM25HF.load_from_hub( f"{user}/bm25s-animals", load_corpus=True, mmap=True ) -
7配置 MCP 服务
先安装 mcp 扩展,再把配置写入 Claude Desktop 的 claude_desktop_config.json,路径需全部替换为绝对路径。
uv pip install "bm25s[mcp]"
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
mcpServers.bm25s.command | 是 | uv 可执行文件的绝对路径,终端执行 which uv 获取 | /absolute/path/to/uv |
mcpServers.bm25s.args | 是 | 启动 bm25 MCP 服务的参数数组 | ["--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/bm25s", "ru |
--index-dir | 是 | MCP 服务读取的 BM25 索引所在目录 | /absolute/path/to/your/index |
load_corpus | 否 | load_from_hub 时是否同时加载语料 | True |
mmap | 否 | 是否以内存映射方式加载索引,用于节省内存 | True |
如何确认成功
终端执行 python -c "import bm25s" 无报错即安装成功;能加载他人共享的 BM25HF 索引并返回检索结果说明可用。
常见问题
Q:应该装哪个安装命令?
A:先用 pip install bm25s 即可跑通;README 推荐再装 pip install "bm25s[core]",它包含 json 加载、进度条、词干提取与 JIT 编译等核心依赖。
Q:想要更好的检索效果怎么办?
A:安装词干提取器 pip install PyStemmer,并在代码中 import Stemmer,然后在索引/检索时启用词干提取。
Q:大索引内存占用太高怎么办?
A:加载索引时设置 mmap=True 使用内存映射。README 在 NQ、MSMARCO 数据集上显示该方式可将加载后内存从数 GB 降到 1GB 左右。
Q:怎么让 Claude Desktop 用上 bm25s?
A:安装 bm25s[mcp],在 claude_desktop_config.json 的 mcpServers 中加入 bm25s 条目,command 指向 uv 绝对路径,args 中指定项目目录与 --index-dir。
注意事项
- README 的 Quickstart 代码片段不完整,完整 API 用法请参考官网 bm25s.github.io 与仓库示例目录。
- f"{user}/bm25s-animals" 中的 {user} 需替换为实际的 Hugging Face 用户或组织名。
- 磁盘占用参考:仅 bm25s 约 51MB,安装 bm25s[core] 约 188MB,远小于 pyserini(约 6976MB)。
- MCP 配置中的目录与 uv 路径必须写成绝对路径,克隆到哪就以哪为准。
核心亮点
- 索引构建和查询速度比传统 BM25 库快数倍,内存占用更低
- 支持 BM25+、BM25L 等变体,适配不同检索场景
- API 简洁,支持从 Hugging Face 数据集直接加载,便于快速实验
不足之处
- 依赖 Numba,初次编译有额外开销,且对 Python 版本兼容性有限
- 文档和社区生态相对薄弱,高级用法需自行摸索
适用场景
- RAG 系统中的文档检索模块
- 中小规模文档集的快速关键词搜索
- 学术研究中 BM25 基线对比实验
替代项目
rank-bm25、Elasticsearch、Whoosh
上一篇:RAG-Survey
下一篇:raptor
同类项目推荐
bm25s
开源
用 Numpy 加速的 BM25 检索,快如闪电,轻松集成 RAG。
Fast BM25 search in Python, powered by Numpy and Numba
MemoRAG
开源
给 RAG 装个记忆库,模糊问题也能精准检索
Empowering RAG with a memory-based data interface for all-purpose applications!
verbatim-rag
开源
让AI回答自带原文出处,告别幻觉,每句话都有据可查
Provenance-first extractive RAG: return verbatim source spans with citations using l···
GPT3-4-Midjourney-StableDiffusio···
开源
每天更新,一个页面找到能用的GPT和AI绘画镜像
国内AI镜像站的导航大全,每天收集公开的GPT3.5+GPT4受限试用+Midjourney+StableDiffusion···
rag-api
开源
FastAPI+pgvector 快速搭 RAG 问答接口
ID-based RAG FastAPI: Integration with Langchain and PostgreSQL/pgvector
youtu-rag
开源
让 AI 自己规划检索,复杂问题答得更准
Youtu-RAG: Next-Generation Agentic Intelligent Retrieval-Augmented Generation System
notebooklm-skill
开源
让 Claude Code 直接查你的 NotebookLM 私有文档,答案带引用
Use this skill to enable Claude Code to communicate directly with your Google Notebo···
session-knowledge
开源
把 Claude Code 聊天记录变成本地可搜索知识库
Turn your Claude Code session history into a searchable local knowledge base — 13 M···
volo
开源
把维基百科变成你的 AI 问答知识库
An F/OSS solution combining AI with Wikipedia knowledge via a RAG pipeline