Spring 数据 Neo4j 4 中的唯一索引

Unique index in Spring Data Neo4j 4

如何保证唯一性:

目前我使用SDN 4.0.0.RC2。我查看 the docs,似乎 SDN 4 现在不支持此功能(但将来会支持)。我理解正确吗?

for property of an graph entity?

使用 cypher 在 属性:

上创建一个(可能是唯一的)索引
CREATE INDEX ON :Person(name)

唯一索引(又名约束):

CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE

来自http://neo4j.com/docs/stable/query-schema-index.html#schema-index-create-index-on-a-label

您可以在 bootstrap 您的 spring 上下文时自动执行此操作:

@Component
public class IndexCreator {

    @Autowired
    Neo4jTemplate neo4jTemplate;

    @PostConstruct
    public void createIndexes() {
        try {
            neo4jTemplate.execute("CREATE INDEX ON :Person(name)", null);
        } catch (Exception ex) {
            // index already exists?
        }
    }
}

for combination of several properties simultaneously?

这不是直接支持的。您可以将多个属性连接成一个并在其上创建索引(同时保留原始属性以便能够访问它们)。或者(正如 Michael 所指出的)您可以使用数组 属性 来存储多个值。