Neo4J Batch Inserter 对于大 ID 很慢

Neo4J Batch Inserter is slow with big ids

我正在开发一个 RDF 文件导入器,但我遇到了一个问题,我的数据文件有重复的节点。出于这个原因,我使用大 ids 来使用批量插入器插入节点,但过程很慢。当迈克尔建议使用索引但过程仍然很慢时,我已经看到了 post

另一种选择是合并重复的节点,但我认为在 Neo4J 中没有这样做的自动选项。我错了吗?

有人能帮帮我吗? :)

谢谢!

完美 :) 数据将具有以下结构:

chembl_activity:CHEMBL_ACT_102540 bao:BAO_0000208 bao:BAO_0002146 .

chembl_document:CHEMBL1129248 cco:hasActivity chembl_activity:CHEMBL_ACT_102551 .

chembl_activity:CHEMBL_ACT_102540 cco:hasDocument chembl_document:CHEMBL1129248 .

每一行对应两个节点之间的关系,我们可以看到节点chembl_activity:CHEMBL_ACT_102540是重复的。

我想将节点名称的哈希码保存为 id,但该哈希码是一个非常大的数字,这会减慢该过程。所以我可以检查 ids 以仅创建关系而不是节点。

谢谢大家! :)

CSV 批量导入器中还没有重复处理(计划在下一个版本中),因为它非常重要且占用大量内存。

最好在您这边进行重复数据删除。

不要使用外部提供的 id 作为节点 id,它可以从一开始就变大而不起作用。使用高效的映射(如 trove)来保持密钥和节点 ID 之间的映射。

我通常使用两次传递和一个数组,然后对数组进行排序,数组索引变为节点 ID,排序后您可以执行另一次传递以消除重复条目