Indexing 为neo4j 2.0使用cypher命名索引

Indexing 为neo4j 2.0使用cypher命名索引,indexing,neo4j,cypher,graph-databases,Indexing,Neo4j,Cypher,Graph Databases,假设我有一个图,其中每个用户都有标签“user”和属性“name” 根据Neo4j 2.0文档,我们可以使用以下cypher命令创建索引 CREATE INDEX ON :user(name); 但是,如果使用START子句编写密码查询,如: start n=node:user(name='john') return n 然后我得到以下错误 MissingIndexException: Index `user` does not exist 我的问题是如何首先定义索引的名称。我知道在Neo

假设我有一个图,其中每个用户都有标签“user”和属性“name” 根据Neo4j 2.0文档,我们可以使用以下cypher命令创建索引

CREATE INDEX ON :user(name);
但是,如果使用START子句编写密码查询,如:

start n=node:user(name='john') return n
然后我得到以下错误

MissingIndexException: Index `user` does not exist

我的问题是如何首先定义索引的名称。我知道在Neo4j 2.0中,使用start子句是可选的。但是,如果我需要使用它们,那么最好的方法是什么呢?

您将传统索引的概念与新的基于2.0标签的索引相混合。不要使用
START
子句,而是使用
MATCH
子句,如下所示:

MATCH (n:user)
WHERE n.name='john' // this causes an index lookup
RETURN n

还要注意的是,Cypher样式通常为标签使用初始大小写名称,如
:User
。标签区分大小写。

您混合了传统索引和新的2.0标签索引的概念。不要使用
START
子句,而是使用
MATCH
子句,如下所示:

MATCH (n:user)
WHERE n.name='john' // this causes an index lookup
RETURN n

还要注意的是,Cypher样式通常为标签使用初始大小写名称,如
:User
。标签区分大小写。

您混合了传统索引和新的2.0标签索引的概念。不要使用
START
子句,而是使用
MATCH
子句,如下所示:

MATCH (n:user)
WHERE n.name='john' // this causes an index lookup
RETURN n

还要注意的是,Cypher样式通常为标签使用初始大小写名称,如
:User
。标签区分大小写。

您混合了传统索引和新的2.0标签索引的概念。不要使用
START
子句,而是使用
MATCH
子句,如下所示:

MATCH (n:user)
WHERE n.name='john' // this causes an index lookup
RETURN n

还要注意的是,Cypher样式通常为标签使用初始大小写名称,如
:User
。标签区分大小写。

是否
匹配(n:user{name:'john'})返回n
也触发索引查找?是的。我不想同时给出这两种方法来限制混乱,但确实如此。我个人更喜欢WHERE语法。难道
匹配(n:user{name:'john'})不返回n
也会触发索引查找吗?是的。我不想同时给出这两种方法来限制混乱,但确实如此。我个人更喜欢WHERE语法。难道
匹配(n:user{name:'john'})不返回n
也会触发索引查找吗?是的。我不想同时给出这两种方法来限制混乱,但确实如此。我个人更喜欢WHERE语法。难道
匹配(n:user{name:'john'})不返回n
也会触发索引查找吗?是的。我不想同时给出这两种方法来限制混乱,但确实如此。我个人更喜欢WHERE语法。