3

ノードのバッチを頻繁に挿入できるようにする必要があります。それは完全に新しい挿入か、既存のノード (および関係) への更新である可能性があります。

Neo4j で BatchInsert 機能を試した後、ノードの次のバッチが到着したときに、それらをグラフに更新 (またはグラフに追加) することはできないという制限を見つけました。代わりに、以前にロードした他のすべてを最初から再度ロードする必要があります。

新しいデータが到着したときにインポートして更新できるようにするカスタム インポーターを実装できるかどうかを確認するために、neo4j-kernel コードベースを詳しく調べました。BatchInserterImpl は、createNodes、createRelationships などのロジックの要となるクラスのようです。予想どおり、nodestore (NeoStore オブジェクト) がコンストラクターで新たに作成されていることがわかります。

この問題を回避するにはどうすればよいですか? グラフデータベースに既に追加したものすべてを再インポートする必要がないように、更新が処理されるデータを挿入する他の実装はありますか? そうでない場合、ユースケースを支援するために既存のコードを拡張する際の推奨事項は何ですか?

また、インデックス作成を追加し、トランザクションをサポートする必要があります (少なくとも基本的なレベルでは)。

4

1 に答える 1

1

EmbeddedGraphDatabase を使用する必要があるように感じます。BatchInserter は、主に初期の大規模な挿入を行うためのものです。それが完了したら、同時読み取り/書き込みとトランザクションをサポートする EmbeddedGraphDatabase に切り替える必要があります。

于 2013-03-18T13:04:08.527 に答える