创建向量索引
向量索引使 Neo4j 能够在整个数据库上执行相似性查询。下面的示例展示了如何为电影嵌入创建一个名为 moviePlots 的向量索引。
| 在 创建向量索引 时提供维度,如下例所示,这可确保仅索引该尺寸的向量,并在查询时明确使维度不匹配的情况失败。 |
CREATE VECTOR INDEX moviePlots
FOR (m:Movie)
ON m.embedding
OPTIONS {indexConfig: {
`vector.dimensions`: 384, (1)
`vector.similarity_function`: 'cosine' (2)
}}
| 1 | 针对使用 SentenceTransformers 模型 all-MiniLM-L6-v2 生成的嵌入。如果使用其他模型,请将此值更新为匹配其嵌入维度。 |
| 2 | 余弦相似度函数是最常用的选择。有关更多细节和其他选项,请参阅 向量索引 → 余弦和欧氏相似度函数。 |
CREATE VECTOR INDEX moviePlots
FOR (m:Movie)
ON m.embedding
OPTIONS {indexConfig: {
`vector.dimensions`: 1536, (1)
`vector.similarity_function`: 'cosine' (2)
}}
| 1 | 针对使用 OpenAI 模型 text-embedding-3-small 生成的嵌入。如果使用其他模型,请将此值更新为匹配其嵌入维度。 |
| 2 | 余弦相似度函数是最常用的选择。有关更多细节和其他选项,请参阅 向量索引 → 余弦和欧氏相似度函数。 |
欲了解更多关于向量索引的信息,请参阅 Cypher → 索引 → 向量索引。