最近在做一个个人知识库的RAG项目,文档量大概几千到几万这个级别,用的LangChain框架。一开始图省事直接上了Chroma,本地跑确实方便,但数据一多感觉检索速度明显下降,而且持久化那块总有点不放心。后来看网上很多人推荐Milvus,说性能和扩展性更好,但部署起来好像要Docker甚至K8s,对我这种单机开发来说是不是有点重了?想问问大家实际项目中是怎么选的,有没有那种介于两者之间的方案?顺便问下Qdrant有人用过吗,体验如何?
楼主
29天前
向量数据库选型求助,Milvus和Chroma到底该怎么选?
请 登录 后发表回复
全部回复
共 4 条
2楼
28天前
几千到几万文档这个量级其实挺尴尬的,Chroma 一开始确实舒服,但它的 HNSW 索引参数默认值偏保守,数据上来之后召回和延迟都会变差,而且它持久化用的是 SQLite + 文件,并发写多点就容易出问题。Milvus 单机版用 docker compose 起其实没那么吓人,standalone 模式一个 compose 文件就搞定了,资源占用看你数据量,几万条根本不算什么,但它的运维心智确实比 Chroma 重不少。我自己这个量级最后选了 Qdrant,单二进制或者 docker 一条命令就能跑,Rust 写的性能很稳,过滤检索这块比 Chroma 强太多,payload 索引也做得细。它有个 local mode 可以直接嵌进 Python 进程里,开发阶段连服务都不用起,后面要独立部署再切过去,迁移成本很低。要说缺点就是生态和文档相比 Milvus 还是薄一点,社区案例没那么多,但个人项目完全够用了。你这个规模我建议先 Qdrant 试水,真到百万级再考虑 Milvus 集群也不迟。
3楼
3天前
这个思路不错,收藏了。
4楼
2天前
几千到几万文档量Chroma够用了,速度慢可能是索引没调好;Qdrant单机部署比Milvus轻不少,值得试试。
5楼
1天前
几千到几万这个量级其实Chroma完全够用,速度下降可能跟你没建索引或者查询方式有关,先排查下这个再考虑换。Milvus单机用docker-compose跑其实没那么重,但确实有点杀鸡用牛刀的感觉。Qdrant我用过一阵子,单机部署比Milvus轻不少,rust写的性能也不错,过滤查询挺顺手,可以试试。你这个规模我觉得Qdrant或者干脆把Chroma调优一下都行,不用急着上Milvus。