繁体   English   中英

Neo4j:创建类型1和类型2的各种节点,将这2种类型的节点关联起来,具有2种不同的关系

[英]Neo4j: Create various Nodes of type 1 and type 2 relate these 2 types of Nodes with 2 different relationships

我正在使用Neo4j来存储数据。

我有两种GDP和健康数据。 每个数据都有一组国家(例如20个左右)和一组年份(例如1990-2013年)。 现在,我想将每个国家/地区存储为唯一的节点,标签作为国家/地区名称,将每年作为唯一的节点存储,并将标签作为年。 国家和年份是通过上述GDP,健康关系相互关联(映射)的。

我已经在2个不同的SortedSet(Java代码)中收集了国家/地区名称和年份。

我不确定是否最好将每个国家/地区和年份逐一添加为graphDB.createNode(),因为我认为创建和定义关系太麻烦了,或者最好是批量插入所有对象这些国家一口气,并且类似地一次批量插入几年。 但是,当我批量插入所有国家和地区后,我将如何定义它们之间的2种关系。

我希望有人拥有一段Java代码,或者就找到最佳的数据存储解决方案提供建议。

我必须指出,并非所有国家/地区都具有任何给定关系的每年数据。

谢谢,榛树

我在某种程度上已经遇到过这种情况。我有一些不同类型的节点

x,y,z

并且x与对应的y或z之间存在关系。 我只是简单地使用BatchInserter插入所有类型的所有节点,然后使用一些sql查询通过查找必须连接的节点的id来获取节点之间的关系。

因此,我认为您可以通过循环使用拖曳集来插入YEARS和COUNTRIES的所有节点,之后可能需要查询或其他任何方式来获得这些节点之间的关系。

这里的指南,将数据导入的Neo4j和这里的其他工具(你可以“批量插入”两个节点和关系,不知道你的犹豫就是那里)。

我不知道您所说的“麻烦”是什么意思。 如果使用上面的批处理工具,则可以先处理所有节点,然后再处理所有关系,但是如果使用Java嵌入式API,则不需要这样做。 如果您担心重复,例如在遍历SortedSet首先作为“主题”出现在一个节点上,然后再次作为关系的“对象”或结束节点出现,则可以查看UniqueFactory 这样一来,您就可以根据给定的数据方便的顺序构建图形,而不必担心创建重复的节点-只需创建每个节点,其关系的远程节点以及它们之间的关系即可。 如果节点已经存在,它们将被更新,而不是重复。 这也许是最直接的方法,请尝试再询问一次,更具体地讲,如果遇到问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM