在Neo4j中更改索引会影响密码中的搜索

时间:2014-08-23 06:18:35

标签: lucene neo4j cypher

我正在使用Neo4j 2.0。

我有一个标签PROD。标签为PROD的所有节点都具有属性name。我在name上创建了一个索引,如下所示:

CREATE INDEX ON :PROD(name) 

如果我将属性name的值从“old”更改为“new”,创建索引后,以下查询在用于测试的小数据集中工作正常,但在我们的生产数据中没有,700个节点具有label PROD(其中大约有一百万个节点和其他标签)。

MATCH (n:PROD) WHERE n.name="new" RETURN n;

我还在同一个字段上创建了遗留索引,在修改后删除并重新索引节点后,它在测试和生产数据集上都能正常工作。

有没有办法确保索引更新?我究竟做错了什么?为什么大型数据集的上述查询失败?

1 个答案:

答案 0 :(得分:1)

您可以在Neo4j浏览器中使用:schema命令,或在neo4j-shell中使用schema。输出应指明已创建哪些索引以及哪些索引已在线。

另外还有programmatic way to wait until index population has finished

考虑升级到2.1.3,索引从2.0开始有所改进。