创建向量索引

向量索引使 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 → 索引 → 向量索引