最近在做一个知识库问答的小项目,用LangChain搭的RAG流程,文档量大概也就几万条。一开始图省事用的Chroma,本地跑着挺顺,但放到服务器上并发一高就经常超时。后来看社区说Milvus性能好,但部署起来太重了,还要单独起服务。想问问各位老哥,像我这种中小规模的项目,到底应该怎么权衡?是直接用pgvector这种插件,还是上ES?另外,向量检索的召回率跟embedding模型的关系大吗,还是说主要看数据库的索引方式?有点迷茫,求指点。
楼主
2026-08-14
RAG项目里向量数据库到底怎么选?Chroma和Milvus把我整不会了
请 登录 后发表回复
全部回复
共 61 条
2楼
23天前
几万条文档其实真不算大,Chroma本地跑没问题但上服务器并发一高就超时,这个坑我也踩过,它本身就不是为多并发场景设计的。你提到的pgvector其实挺适合你这个量级,几万条向量用HNSW索引,查询延迟基本在毫秒级,还不用额外维护一个服务,省心很多。Milvus确实重,单独起etcd和minio那套对中小项目来说有点杀鸡用牛刀,除非你预期数据量会涨到千万级再考虑。ES也能做向量检索,但它的强项还是全文搜索,纯向量场景下性价比不如pgvector。至于召回率,embedding模型的影响其实比索引方式大得多,索引只决定你查得多快、近似程度多高,模型不行的话再好的索引也白搭。建议先把embedding换成bge-m3或者text-embedding-3-large试试,再配合pgvector的HNSW,大概率能解决你现在的问题。