使用带有整数ID的neo4j导入工具

使用带有整数ID的neo4j导入工具,neo4j,graph-databases,Neo4j,Graph Databases,我是Neo4j的新手,我正在尝试使用它将一堆遗留数据导入到一个新的数据库中。此数据的主ID将是整数。但是,节点的:ID属性似乎默认为字符串类型?我知道我可以在其他属性上使用:int使它们成为整数类型,但似乎不可能将其与:ID组合 例如,下面是节点类型1: node1_int_id:ID(node1)|other_prop|another_prop 12345 |foo |bar 节点类型2: node2_int_id:ID(node2)|other_

我是Neo4j的新手,我正在尝试使用它将一堆遗留数据导入到一个新的数据库中。此数据的主ID将是整数。但是,节点的:ID属性似乎默认为字符串类型?我知道我可以在其他属性上使用:int使它们成为整数类型,但似乎不可能将其与:ID组合

例如,下面是节点类型1:

node1_int_id:ID(node1)|other_prop|another_prop
12345                 |foo       |bar
节点类型2:

node2_int_id:ID(node2)|other_prop|another_prop
67890                 |foo       |bar
关系呢

:START_ID(node1)      |:END_ID(node2)
12345                 |67890
这似乎可行,但结果是基于两个字符串类型字段的关系。所以我想我有两个问题:

1) 我这样做对吗?有没有办法让ID字段变成我看不到的整数

2) 如果我必须这样做,它们是字符串是否有问题?这最终会产生一个相当大的数据库,包含约1亿个节点和关系,因此基于字符串比较查找关系似乎不是一个好主意。

neo4j导入工具的页面记录了此命令行选项:

--id类型

[STRING,INTEGER,ACTUAL]中的一个,指定如何处理节点/关系输入文件中的ID

字符串:用于标识节点的任意字符串。整数:用于标识节点的任意整数值。实际:(高级)实际节点ID

默认选项是STRING


因此,在运行导入工具时,应该在命令行上指定
--id type INTEGER

Neo4j的本机id是数字。您确定您使用的是本机ID还是您自己的ID?你用的是什么neo4j驱动程序?另外,您应该知道依赖本机ID不是一个好主意。如前所述:“删除节点和关系时,Neo4j重用其内部ID。这意味着使用和依赖内部Neo4j ID的应用程序很脆弱或有出错的风险。而应该使用应用程序生成的ID。”这些是我自己的ID。它们来自现有关系数据库中的索引号。您使用的是什么语言和neo4j驱动程序?neo4j本身似乎没有问题,因为它可以存储整数属性。我知道它可以存储整数属性。“other_prop:int”何时正确地将该属性存储为整数。但我无法将其与指定属性作为ID相结合。执行“my_ID:ID:int”和“my_ID:int:ID”“不行。这是版本2.3.2,带有python后端。请显示实际的密码查询。如果所有节点都具有相同类型的ID,则此操作正常,但如果某些节点具有整数ID,而某些节点具有字符串ID,则如何执行此操作?