最近在做一个知识库问答的小项目,把文档切块后用text2vec-base-chinese模型转成向量,存到Milvus里。查询的时候用的是余弦相似度,topk设了20,但返回的结果里总混着一些明显不相关的内容,比如搜“Python多线程”却出来“Python环境安装”。我试过调整切块大小(从200字试到800字),也试过换模型(bge-small-zh),但效果提升有限。想问问大家,这种召回不准的情况,一般是从embedding模型质量入手,还是向量库的索引参数(比如HNSW的efConstruction或M)需要专门调?或者是我对topk的期望太高了,本来语义搜索就做不到百分百准?先谢谢了。