2

我的问题实际上是在 Neo4j 2.0.M5 中使用标签的基本示例。我尝试删除所有节点和关系,然后删除旧的“Person”索引,然后基于“name”属性创建一个新的“Person”索引,然后创建一个名为“John Doe”的标记为“Person”的节点,最终检索此节点。

暗号:

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

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

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

4

1 回答 1

3

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

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

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

于 2013-10-10T12:12:53.270 回答