我的问题实际上是在Neo4j 2.0.M5中使用标签的基本示例。我尝试删除所有节点和关系,然后删除旧的'Person'索引,然后根据'name'属性创建一个新的'Person'索引,然后创建一个名为'Person'的节点,名称为'John Doe',最终检索此节点。
的Cypher:
START n=node(*) MATCH n-[r?]-m WITH n, r DELETE n, r
DROP INDEX ON :Person(name)
CREATE INDEX ON :Person(name)
CREATE (n:Person {name:'Jhon Doe'})
start n=node:Person(name='Jhon Doe') return n
一切正常,但最后,当我尝试检索我的节点时。 Neo4j抛出错误:
Index `Person` does not exist
我尝试不创建索引,但它也不起作用。
这是一个非常简单的案例,你看到了问题吗?
答案 0 :(得分:3)
对于Neo4j 2.0,不再需要start
,您的查询可以表示为:
match (n:Person)
where n.name='Jhon Doe'
return n;
使用start
语法,您将指定索引名称。使用v2.0,在基于标签创建索引时,我不相信索引可以通过名称引用(因为它从未被赋予名称;您刚刚告诉Neo4j使用标签{{1)索引节点基于属性Person
)。由于没有名为name
的索引,这可能就是您看到错误的原因。