2012-11-11 87 views
0

我有neo4j作为Windows服务运行。当我重新启动机器时,自动索引未打开。Neo4j自动索引 - 使它们永久保留在

neo4j-sh (0)$ eval db.index().getNodeAutoIndexer().isEnabled() 

返回false

我要运行

neo4j-sh (0)$ eval db.index().getNodeAutoIndexer().setEnabled(true) 

我每次启动该服务。

我已经在我的配置文件

node_auto_indexing=true 
node_keys_indexable=EmailAddress,Identifier,PostIdentifier,UserIdentifier 

以下,这些都是我setEnabled(true)

如何配置的服务,成为可转位的钥匙,所以我没有启用索引在每一次启动?

+0

您是否试图实际索引一个实体?我认为这些指标是懒惰创造的。 –

+0

谢谢@PeterNeubauer你能详细说明你的意思吗?我有一大堆测试在我的图中测试了所有节点类型的创建。当nodeAutoIndexer关闭时,它们全部失败,当它们通过时。这些测试创建节点,并通过索引查找其他节点。 –

+0

是否所有索引都是懒洋洋地创建的?非自动索引怎么样? –

回答

2

Per Peter Neubauer的评论指出,索引是懒惰创建的。因此,您必须创建至少一个包含至少一个可索引属性的实体(节点或关系)。恕我直言,这可能被认为是如何管理索引的一个错误。您可能希望在索引被延迟创建之前对索引发出Cypher查询。由于索引不存在,此查询将导致错误。但是你可能期望的是一个空的结果集。发生错误的事实实际上向调用者泄漏了一点索引实现。

事实上,我想我会在此打开一个问题;-)

+0

你能发布一个问题的链接,以便我可以监控它。 –

+0

+1,请提供一个console.neo4j.org测试用例以方便娱乐:) –