唯一性约束和索引问题

Ste*_* P. 5 neo4j cypher

我必须做错事,或者对约束和索引有误解.我有以下内容:

CREATE CONSTRAINT ON (u:User) ASSERT u.user_id IS UNIQUE
Run Code Online (Sandbox Code Playgroud)

CREATE INDEX ON :User(user_id)
Run Code Online (Sandbox Code Playgroud)

我尝试过交替订单,但无论如何,我得到了:

Neo.ClientError.Schema.ConstraintAlreadyExists
Run Code Online (Sandbox Code Playgroud)

要么

Neo.ClientError.Schema.IndexAlreadyExists
Run Code Online (Sandbox Code Playgroud)

取决于订购.

我不明白为什么我不能这样做.我想要查找快速查找user_id,这就是为什么我要编制索引,我也想确保它user_id是唯一的,这就是为什么我有一个约束.

我有什么误会?我应该怎么做呢?

Lua*_*nne 9

添加唯一约束也将在该属性上添加索引 - 因此唯一约束就足够了.

请参见http://docs.neo4j.org/chunked/stable/query-constraints.html

"请注意,在属性上添加唯一性约束也会在该属性上添加索引,因此您无法单独添加此类索引.Caxher将像其他索引一样使用该索引进行查找.如果删除约束但仍需要索引在该属性上,您将必须创建索引."