最近在做个RAG项目,用的Milvus存了大概50万条768维的向量,query是同一个模型生成的。现在问题是recall@10只有70%左右,试着调了HNSW的M和efConstruction,从16调到64,召回率也就涨了2个点,但索引构建时间翻了几倍。数据是中文长文档切片的,本身有重叠。想问下有没有人遇到过类似情况?是embedding模型本身的问题(比如维度太高但语义区分度不够),还是应该考虑换别的索引类型(比如IVF_PQ)?另外分片策略和查询时的params(efSearch)是不是也有讲究?希望有实战经验的大佬能分享下调试思路,别让我瞎试了,感恩。