使用 node_auto_indexing 导入 neo4j
neo4j-import with node_auto_indexing
对于一个项目,我需要导入500万个节点和1500万个关系。
我尝试过批量导入,但速度很慢,所以我使用了 Neo4j 2.2 中的新工具 'Neo4j-import'。我们生成一些具体的 .csv 并使用 'neo4j-import'。速度非常快,整个数据库创建时间为100万。
但问题是我需要对 属性 进行正则表达式查询(查找只有他名字开头的电影)。平均响应时间在 2.5 到 4 秒之间,这是巨大的。
我读到,使用 Lucene 查询会更有效率。但是使用 Neo4-import,创建的节点没有 node_auto_indexing.
有没有办法使用 Neo4j-import 并具有 node_auto_indexing 以便使用 Lucene 查询?
谢谢,
爬虫类
neo4j-import
不填充自动索引。为此,您需要在要自动索引的节点上触发写入操作。假设您的节点带有 :Person
标签和 name
属性.
在neo4j.properties
中为name
配置节点自动索引并重启Neo4j。
要填充自动索引 运行 像这样的密码语句:
MATCH (n:Person)
WHERE NOT HAS(n.migrated)
SET n.name = n.name, n.migrated=true
RETURN count(n) LIMIT 50000
重新运行此语句,直到报告的计数为 0。LIMIT
的基本原理是拥有合理大小的事务。
对于一个项目,我需要导入500万个节点和1500万个关系。 我尝试过批量导入,但速度很慢,所以我使用了 Neo4j 2.2 中的新工具 'Neo4j-import'。我们生成一些具体的 .csv 并使用 'neo4j-import'。速度非常快,整个数据库创建时间为100万。
但问题是我需要对 属性 进行正则表达式查询(查找只有他名字开头的电影)。平均响应时间在 2.5 到 4 秒之间,这是巨大的。
我读到,使用 Lucene 查询会更有效率。但是使用 Neo4-import,创建的节点没有 node_auto_indexing.
有没有办法使用 Neo4j-import 并具有 node_auto_indexing 以便使用 Lucene 查询?
谢谢,
爬虫类
neo4j-import
不填充自动索引。为此,您需要在要自动索引的节点上触发写入操作。假设您的节点带有 :Person
标签和 name
属性.
在neo4j.properties
中为name
配置节点自动索引并重启Neo4j。
要填充自动索引 运行 像这样的密码语句:
MATCH (n:Person)
WHERE NOT HAS(n.migrated)
SET n.name = n.name, n.migrated=true
RETURN count(n) LIMIT 50000
重新运行此语句,直到报告的计数为 0。LIMIT
的基本原理是拥有合理大小的事务。