最近在搭一个知识库问答系统,数据量大概几十万条文档切片。一开始图省事直接用的ES的dense vector插件,但检索效果总觉得差点意思,召回结果经常跑偏。后来听说专门的向量数据库(像Milvus、Weaviate那些)有HNSW索引和更细的相似度算法,就又折腾着换了一套。但问题来了——现在数据量不算特别大,ES完全能扛得住,而且它还能直接做关键词过滤和聚合,切换过去反而感觉功能拆散了。想问下各位老哥,实际项目里到底怎么权衡?是直接上专用向量库,还是ES加个向量插件就够了?有没有人踩过类似的坑?另外混合检索(BM25+向量)是不是必须的,还是说小规模场景纯向量就够用?纠结好几天了,求指点。