最近在做RAG项目,用的Milvus存文档切片向量,大概几十万条数据。现在的问题是query召回的相关文档老是不准,top10里经常混进一些语义完全不搭边的结果。我试过换不同的embedding模型(bge-m3和text-embedding-3-small),也试过改距离算法(IP换成了L2),召回率还是上不去。感觉数据清洗和chunk切分也都做了,但效果就是不如预期。想问下各位老哥,是索引参数(比如HNSW的M和efConstruction)会影响召回吗?还是说需要做query改写或者混合检索(比如BM25+向量)?有没有类似踩坑经历的朋友分享一下调参经验,或者推荐一下更合适的向量检索方案?
楼主
2026-08-31
向量数据库召回率上不去,调了embedding和距离算法还是不行,求大佬指点
请 登录 后发表回复
全部回复
共 23 条
2楼
4天前
刚入门,这个对我帮助很大。
3楼
4天前
学到了,感谢分享!
4楼
2天前
top10混进不相关的结果,先别急着怪索引参数,大概率是chunk切分粒度的问题。几十万条数据里如果切片太大或太小,embedding本身就会把语义稀释掉,建议抽几条badcase看看原始文本。HNSW的M和efConstruction确实影响召回,但efSearch调大点先试试,成本最低。混合检索(BM25+向量)对关键词型query提升很明显,值得加上。