我有一个存储在典型 MySQL 数据库中的表,并且我使用 java 构建了一个小型解析器工具来解析并构建一个 neo4j 数据库。该数据库将有大约 4000 万个节点,每个节点都有一条或多条边(最多可能有 10 条边)。问题来自我必须创建某些节点的方式。有一个用户节点、评论节点和主题标签节点。用户节点和主题标签节点都必须是唯一的。我正在使用以下示例中的代码来确保唯一性:
public Node getOrCreateUserWithUniqueFactory( String username, GraphDatabaseService graphDb )
{
UniqueFactory<Node> factory = new UniqueFactory.UniqueNodeFactory( graphDb, "users" )
{
@Override
protected void initialize( Node created, Map<String, Object> properties )
{
created.setProperty( "name", properties.get( "name" ) );
}
};
return factory.getOrCreate( "name", username );
}
我曾考虑过使用批量插入器,但我还没有看到在执行批量插入时检查节点是否唯一的方法。所以我的问题是插入所有这些节点的最快方法是什么,同时仍确保它们保持其唯一性。任何帮助将一如既往地不胜感激。