在 Neo4j 中,索引用于加速对节点和关系的查询操作。索引可以在属性上创建,以提高基于这些属性的查询性能。以下是 Neo4j CQL 中索引的基本用法:

节点索引:

1. 创建节点索引:
CREATE INDEX ON :LabelName(propertyName);

示例:
CREATE INDEX ON :Person(name);

上述语句将在名为 "Person" 的节点上的 "name" 属性上创建一个索引。

2. 使用节点索引进行查询:
MATCH (p:Person)
WHERE p.name = 'John'
RETURN p;

在上述查询中,由于 "name" 属性已经被索引,该查询可以更有效地执行。

3. 查看节点索引:
:SCHEMA

上述命令将显示数据库中的模式,包括节点和关系的索引信息。

关系索引:

关系的索引与节点索引的使用方式类似。

1. 创建关系索引:
CREATE INDEX ON :RelationshipType(propertyName);

示例:
CREATE INDEX ON :KNOWS(since);

上述语句将在类型为 "KNOWS" 的关系上的 "since" 属性上创建一个索引。

2. 使用关系索引进行查询:
MATCH (a)-[r:KNOWS]->(b)
WHERE r.since = 2022
RETURN a, r, b;

在上述查询中,由于 "since" 属性已经被索引,该查询可以更有效地执行。

3. 查看关系索引:
:SCHEMA

上述命令将显示数据库中的模式,包括节点和关系的索引信息。

删除索引:

删除节点索引:
DROP INDEX ON :LabelName(propertyName);

删除关系索引:
DROP INDEX ON :RelationshipType(propertyName);

请注意,索引的创建和删除操作可能会影响数据库性能,因此应该在考虑使用索引时进行评估。




转载请注明出处:http://www.zyzy.cn/article/detail/9306/Neo4j