最近在做一个RAG项目,用的pgsql+pgvector,存的OpenAI的1536维向量,数据量大概50万条。现在的问题是召回率一直不理想,top20里面经常混进一些语义完全不相关的结果,比如搜“苹果公司”会出来水果的食谱。我已经试过调HNSW的m和ef_search参数,从16调到64,效果提升不明显。也试过用bge-large-zh重新embedding,但还是有这个问题。想问问各位老哥,这种跨语言的语义混淆,到底是索引的毛病还是embedding模型的局限?或者说有没有什么办法能先粗筛再精排?现在有点迷茫,希望有经验的朋友指点一下。