如何在Neo4j 2.0.0M5中通过其标签创建和检索节点

时间:2013-10-10 11:38:57

标签: neo4j cypher graph-databases

我的问题实际上是在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

我尝试不创建索引,但它也不起作用。

这是一个非常简单的案例,你看到了问题吗?

1 个答案:

答案 0 :(得分:3)

对于Neo4j 2.0,不再需要start,您的查询可以表示为:

match (n:Person)
where n.name='Jhon Doe'
return n;

使用start语法,您将指定索引名称。使用v2.0,在基于标签创建索引时,我不相信索引可以通过名称引用(因为它从未被赋予名称;您刚刚告诉Neo4j使用标签{{1)索引节点基于属性Person)。由于没有名为name的索引,这可能就是您看到错误的原因。