我正在开发一个 Ruby on Rails 项目,该项目将读取和解析较大的文本文件(大约 100k 行)并使用该数据构建 Neo4j 节点(我正在使用Neography)。这是我编写的代码中与 Neo4j 相关的部分:
d= Neography::Rest.new.execute_query("MATCH (n:`Label`) WHERE (n.`name`='#{id}') RETURN n")
d= Neography::Node.load(d, @neo)
p= Neography::Rest.new.create_node("name" => "#{id}")
Neography::Rest.new.add_label(p, "LabelSample")
d=Neography::Rest.new.get_node(d)
Neography::Rest.new.create_relationship("belongs_to", p, d)
所以,我想做的是:在已经填充的数据库中搜索与解析数据具有相同“名称”字段的节点,为该数据创建一个新节点,最后在它们两者之间创建关系。显然,这段代码的执行时间太长了。所以我尝试了Neography的批次,但遇到了一些问题。
p = Neography::Rest.new.batch [:create_node, {"name" => "#{id}"}]
在
id["self"].split('/').last
d=Neography::Rest.new.batch [:get_node, d]
给我一个 Neography::UnknownBatchOptionException for get_node
我什至不确定这是否会为我节省足够的时间。
我还尝试了不同的方法来做到这一点,例如使用批量导入,但我找不到从数据库中获取我需要的已创建节点的方法。如您所见,我对此有点陌生,因此将不胜感激。提前致谢。