点 | 内容 |
---|---|
✅ 都支持向量检索 | 都可以基于 embedding(向量)做相似度搜索,比如给一段文本、找出最相似的若干条记录。 |
✅ 都用于语义检索 | 你可以把它们用在 RAG(检索增强生成)、Chat with Docs、智能问答、推荐系统等应用里。 |
✅ 都支持批量插入、查询 | 都可以批量向数据库中插入文本 + 向量,然后用向量做 top-k 检索(如 search(k=8) )。 |
✅ 都和 LangChain 集成 | 它们都可以通过 langchain.vectorstores 模块统一调用,比如作为 .as_retriever() 用于检索。 |
假设你有 1000 条 Cypher 查询示例,它们的 embedding 都是 1536 维的向量,不管你用的是 Neo4j 向量存储、Milvus 还是 Qdrant,都可以实现:
retriever = vectorstore.as_retriever(search_kwargs={"k": 8})
用于问题相似度匹配。
项目 | Neo4j 向量存储 | Milvus / Qdrant |
---|---|---|
✅ 主要定位 | 图数据库 + 关系检索 + 向量搜索结合 | 纯粹为高效的向量检索设计的专用数据库 |
✅ 查询语言 | 支持 Cypher 图查询语言 + 向量检索 | 使用专属 SDK / REST API / Faiss-like 查询接口 |
✅ 数据结构 | 强调实体、关系和属性组成的知识图谱 | 强调嵌套文档、标签、多字段存储 |
✅ 检索方式 | 可以把向量检索结果与图结构联动(例如找出某类实体相似内容) | 聚焦于向量本身的高效近似搜索(ANN) |
✅ 索引优化 | 目前向量索引(如 HNSW)在 Neo4j 中支持较基础 | Milvus、Qdrant、Weaviate 支持复杂索引结构,性能更好 |
✅ 插件依赖 | 需要 Neo4j >= 5.x 且开启 GDS 插件或使用 APOC 扩展 | 无需图结构,可独立运行部署(轻量) |
Neo4jVector 的强项是图与语义搜索的融合:
你可以在图中查找“所有和某个患者相关的 visit”,再按 embedding 相似度排序;或者先做向量检索,再沿图结构找到某些路径上的实体。
Milvus / Qdrant 强项是高性能大规模向量检索:
比如你有百万级别向量库要做到毫秒级检索,Milvus 和 Qdrant 可以轻松处理,并提供多种索引算法(HNSW、IVF、DiskANN 等)。
假设你有以下目标:
✳️ 用户提问:“有哪些就诊记录提到了糖尿病相关的治疗?”
用 Neo4j 向量检索:
(:Visit)
节点,其 v.text
的 embedding 与问题向量相似;(:Patient)
、(:Diagnosis)
等节点;用 Milvus / Qdrant:
Neo4j 向量搜索擅长将“结构化图信息”与“语义相似度”结合起来;而 Milvus、Qdrant 等专用向量数据库更适合做超大规模、高性能的纯向量相似度检索。
如果你: