2016-03-15 20 views
0

我使用Neo4j Server 2.3.2版本并使用非托管插件来解析非负载结构数据并将其加载到图形中。Neo4j独立服务器:在服务器启动时使用Java API强制实施唯一约束

虽然这样做,我陷入了重复节点的情况,吞吐量较低(即使是批处理)以进行顺序处理。考虑到重复数据负载的使用情况,寻求并行数据处理使用或者(使用服务器插件):

  1. 分割文件

  2. 拆分进程/线程现在

,并行日期加载是我可以预见的最大挑战,就是处理数据完整性问题,例如如何避免创建重复节点。阅读Neo4j的参考资料,我发现了以下创建独特节点的选项。

选项:

  1. [首选]获取或使用Cypher和唯一约束

  2. [其他]悲观从Java API锁定

  3. [其他]获取或创建创建独特的节点使用传统索引的独特节点

现在,问题来自于我可以使用java API执行这个唯一约束的地方。我正在寻找一些事件信息,我可以捕捉并强化这些限制。请告知加载/调用某些事件/方法的最佳方式,并在那里注入用于实施约束的代码。

另外,是否有任何方法可以在创建任何实体之前使用Cipher很好地定义这种独特的强制执行。

在此先感谢

参考文献:

  1. http://neo4j.com/docs/stable/transactions-unique-nodes.html

  2. http://neo4j.com/docs/stable/tutorials-java-embedded-unique-nodes.html#tutorials-java-embedded-unique-get-or-create

  3. http://neo4j.com/docs/stable/tutorials-java-embedded-unique-nodes.html#tutorials-java-embedded-unique-get-or-create-with-factory

  4. http://neo4j.com/docs/stable/rest-api-unique-indexes.html

  5. http://neo4j.com/docs/stable/tutorials-java-embedded-unique-nodes.html#tutorials-java-embedded-unique-pessimistic

  6. http://neo4j.com/docs/stable/tutorials-java-embedded-unique-nodes.html#tutorials-java-embedded-unique-get-or-create

  7. http://neo4j.com/docs/stable/javadocs/org/neo4j/graphdb/index/Index.html#putIfAbsent%28T,%20java.lang.String,%20java.lang.Object%29

回答

1

这是非常简单的,不知何故,我错过了一边念叨密码:(

它像...

创建约束ON(N:人)ASSERT n.name是唯一的;

创建约束ON(N:人)ASSERT n.role是唯一的;

+0

它的Cypher BTW。用'y':) –