文字列のリストがあり、すべての要素をグラフ データベースにインポートしたいと考えています。インポートと言うのはつまり、文字列をノードのプロパティとして設定したいということです。リストのサイズは膨大になります。ノードの命名を自動化する方法はありますか? 従来の方法では、リストのサイズが 100 の場合、graphDb.createNode() を 100 回呼び出してノードを作成する必要があるためです。
1 に答える
0
文字列のリストをパラメーターとして Cypher クエリに渡すことができます。サンプル スニペットを次に示します。
List<String> names = ...;
try ( Transaction tx = graphDb.beginTx() )
{
String queryString = "UNWIND {names} AS name CREATE (n:User {name: name})";
Map<String, Object> parameters = new HashMap<>();
parameters.put( "names", names );
graphDb.execute( queryString, parameters );
tx.success();
}
注: 文字列のリストが「長すぎる」場合、上記の方法は機能しません。これは、サーバーが単一のトランザクションですべての処理を実行しようとしてメモリ不足になる可能性があるためです。その場合、apoc.periodic.iterateのような APOC プロシージャを使用して、小さなバッチでノードを作成することをお勧めします。
于 2016-11-15T22:34:30.803 に答える