0

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

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

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

我不确定是否最好将每个国家和年份逐个添加为 graphDB.createNode() 因为我认为这太麻烦而无法创建然后定义关系,或者最好批量插入所有这些国家中的一次,类似地一次插入几年。但是当我再次批量插入所有国家和年份时,我将如何定义它们之间的 2 个关系。

我想如果有人有一段 java 代码或提供有关寻找存储数据的最佳解决方案的建议。

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

谢谢,榛树

4

2 回答 2

0

有关将数据导入 Neo4j 的指南,请参见此处,有关其他工具,请参见此处(您可以“批量插入”节点和关系,不确定您的犹豫是什么)。

我不知道你说的“麻烦”是什么意思。如果您使用上面的批处理工具,您可以先处理所有节点,然后再处理所有关系,但如果您使用 Java 嵌入式 API,则无需这样做。如果您担心重复,例如您在遍历您的节点时首先将节点作为“主题” SortedSet,然后再次作为“对象”或关系的结束节点,您可以查看UniqueFactory. 它将允许您按照给定数据的方便顺序构建图表,而无需担心创建重复节点——只需创建每个节点、其关系的远程节点以及这些节点之间的关系。如果节点已经存在,它们将被更新,而不是重复。这可能是最直接的方法,试一试,再问一遍,如果你有麻烦,再具体一点。

于 2013-10-28T09:54:04.903 回答
0

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

x, y, z

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

因此,我认为您可以通过遍历您拥有的两个集合来插入 YEARS 和 COUNTRIES 的所有节点,之后您可能需要查询或其他任何东西来获取这些节点之间的关系。

于 2013-06-12T08:09:36.617 回答