我有一个使用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();
答案 0 :(得分:0)
似乎有很多垃圾收集正在进行中。使用更大的堆(例如-Xmx1g)运行您的应用程序,看看会发生什么。
编辑:
此外,relationship_keys_indexable=X-->Y
似乎很奇怪。我希望那里有一个属性名称。如果删除此属性或输入有效值会发生什么?
node_keys_indexable键允许您指定逗号分隔 要编制索引的节点属性键列表。该 relationship_keys_indexable对关系属性执行相同操作 密钥。