简介

人类擅长自然语言,却在数字方面力不从心;电脑擅长数字,却在自然语言上吃力。那么,我们该如何利用电脑来完成需要自然语言理解的任务呢?如果有一个包含电影的 Neo4j 数据库,如何用文字表达的兴趣去查询出最匹配的电影?例如,哪些电影是关于 an exploration of italian mafias in america 的?哪些电影与 a criminal is changed through love 有关联?哪些电影彼此相似?

Neo4j 的向量索引允许您检索与其他节点和关系相似,或与给定文本提示相关的节点和关系。 但向量索引不能直接处理自然语言文本:它们需要将文本转换为数字列表。这些列表称为 嵌入,旨在以数值方式编码文本的含义。借助向量索引,数据库可以基于嵌入快速匹配图实体。

例如,下图展示了电影 Despicable Me 的标题、情节以及对应的嵌入。

despicable embedding

本教程使用 recommendations 数据集,其中包含电影以及导演或出演这些电影的人。

recommendations model

您将学习如何设置环境、在电影节点上创建嵌入(使用免费开源库以及外部 AI 提供商),创建向量索引,并根据模糊描述或相似电影查询数据库中的电影。

要求

本指南的要求如下

  • 运行中的 Neo4j 实例(版本 >= 2026.01)和 Cypher 25 — 如果没有,请 在本地安装 Neo4j 或注册 Aura 云实例

  • Cypher 有一定了解 — 如果您是新人,请查看 入门 → Cypher

  • python 以及一定的使用经验。

  • (可选)外部 AI 提供商的 API 密钥,如果您打算使用它们生成嵌入。

如果您的数据库运行的是 Cypher 5,请查看 本教程的相应版本

术语表

Aura

Aura 是 Neo4j 的全托管云服务。它提供免费和付费计划。

Cypher

Cypher 是 Neo4j 的图查询语言,可让您从数据库中检索数据。它类似于 SQL,但用于图。