典型的なMySQLデータベースに格納されたテーブルがあり、neo4jデータベースを解析して構築するために、Javaを使用して小さなパーサーツールを構築しました。このデータベースには最大 4,000 万のノードがあり、それぞれに 1 つ以上のエッジがあります (最大 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 );
}
バッチ挿入機能を使用することを考えましたが、バッチ挿入の実行中にノードが一意かどうかを確認する方法がありませんでした。したがって、私の質問は、これらすべてのノードを挿入しながら、それらの一意性を維持するための最速の方法は何かということです。いつものように、どんな助けでも大歓迎です。