对于一个项目,我需要导入500万个节点和1500万个关系。我试图通过批处理进行导入,但是非常慢,所以我使用了Neo4j 2.2中的新工具'Neo4j- import‘。我们生成一些具体的.csv,并使用‘新4j导入’。它非常快,整个数据库在1mn 30中创建。
但问题是,我需要对一个属性执行regex查询(找到一个只有他名字开头的电影)。平均响应时间在2.5到4秒之间,这是巨大的。
我读到过,使用Lucene查询会更有效率。但是使用Neo4 4导入,节点是在没有node_auto_indexing的情况下创建的。
是否有一种使用neo4j导入和拥有node_auto_indexing的方法来使用Lucene查询?
谢谢,
爬行动物
发布于 2015-04-02 20:09:06
neo4j-import不填充自动索引。为此,需要在要自动索引的节点上触发写操作。假设有具有:Person标签的节点具有name属性。
在name中为neo4j.properties配置节点自动索引,并重新启动Neo4j。
若要填充自动索引,请运行如下所示的cypher语句:
MATCH (n:Person)
WHERE NOT HAS(n.migrated)
SET n.name = n.name, n.migrated=true
RETURN count(n) LIMIT 50000重新运行此语句,直到报告的计数为0。LIMIT的基本原理是拥有一个合理规模的事务。
https://stackoverflow.com/questions/29418969
复制相似问题