neo4j java rest binding api没有从getNodeAutoIndexer返回

时间:2014-03-21 07:27:49

标签: java neo4j

我有一个使用neo4j嵌入式数据库的应用程序。现在,我想迁移到neo4j服务器,因为我需要将此应用程序与Web应用程序集成(使用servlet,tomcat)。

我想最低限度地改变代码,所以我想到了使用neo4j的java-rest-binding api。但我坚持获得自动节点索引。方法getAutoNodeIndexer不会返回。在数据库的 messages.log 中,显示

[o.n.k.EmbeddedGraphDatabase]: GC Monitor: Application threads blocked for an additional 254ms [total block time: 2.678s]

我不知道如何解决这个问题。

我在 neo4j.properties 中设置了相应的属性,

node_auto_indexing=true
node_keys_indexable=primaryKey
relationship_auto_indexing=true
relationship_keys_indexable=X-->Y

这就是我的代码:

graphDb = new RestGraphDatabase("http://localhost:7474/db/data/"); 
ReadableIndex<Node> autoNodeIndex =     graphDb.index().getNodeAutoIndexer().getAutoIndex();
ReadableRelationshipIndex autoRelIndex = graphDb.index().getRelationshipAutoIndexer().getAutoIndex();

1 个答案:

答案 0 :(得分:0)

似乎有很多垃圾收集正在进行中。使用更大的堆(例如-Xmx1g)运行您的应用程序,看看会发生什么。

编辑:

此外,relationship_keys_indexable=X-->Y似乎很奇怪。我希望那里有一个属性名称。如果删除此属性或输入有效值会发生什么?

说明official documentation

  

node_keys_indexable键允许您指定逗号分隔   要编制索引的节点属性键列表。该   relationship_keys_indexable对关系属性执行相同操作   密钥。