简介
人类擅长自然语言,却在数字方面力不从心;电脑擅长数字,却在自然语言上吃力。那么,我们该如何利用电脑来完成需要自然语言理解的任务呢?如果有一个包含电影的 Neo4j 数据库,如何用文字表达的兴趣去查询出最匹配的电影?例如,哪些电影是关于 an exploration of italian mafias in america 的?哪些电影与 a criminal is changed through love 有关联?哪些电影彼此相似?
Neo4j 的向量索引允许您检索与其他节点和关系相似,或与给定文本提示相关的节点和关系。 但向量索引不能直接处理自然语言文本:它们需要将文本转换为数字列表。这些列表称为 嵌入,旨在以数值方式编码文本的含义。借助向量索引,数据库可以基于嵌入快速匹配图实体。
例如,下图展示了电影 Despicable Me 的标题、情节以及对应的嵌入。
本教程使用 recommendations 数据集,其中包含电影以及导演或出演这些电影的人。
您将学习如何设置环境、在电影节点上创建嵌入(使用免费开源库以及外部 AI 提供商),创建向量索引,并根据模糊描述或相似电影查询数据库中的电影。
要求
本指南的要求如下
-
运行中的 Neo4j 实例(版本 >= 2026.01)和 Cypher 25 — 如果没有,请 在本地安装 Neo4j 或注册 Aura 云实例。
-
对 Cypher 有一定了解 — 如果您是新人,请查看 入门 → Cypher。
-
python以及一定的使用经验。 -
(可选)外部 AI 提供商的 API 密钥,如果您打算使用它们生成嵌入。
| 如果您的数据库运行的是 Cypher 5,请查看 本教程的相应版本。 |