1

自動インデックス機能を使用して Neo4J にデータをインポートすることはできますか? 次の例のように、BatchInserter と BatchInserterIndex を使用してデータをインポートしようとしています。

BatchInserter inserter = BatchInserters.inserter("/home/fmagalhaes/Neo4JDatabase");
BatchInserterIndexProvider indexProvider = new LuceneBatchInserterIndexProvider(inserter);
BatchInserterIndex nodeIndex = indexProvider.nodeIndex("node_auto_index", MapUtil.stringMap("type","exact"));
BatchInserterIndex relIndex = indexProvider.relationshipIndex("relationship_auto_index", MapUtil.stringMap("type","exact"));
...
inserter.createNode(vertexId, properties);
nodeIndex.add(vertexId, properties);
...

問題は、バッチ処理が完了したときに、次のようにしてブループリントのジェネリック API でこのデータベースを開こうとしていることです。

Graph g = new Neo4jGraph("/home/fmagalhaes/Neo4JDatabase");
Set<String> nodeIndices = ((KeyIndexableGraph)g).getIndexedKeys(Vertex.class);
Set<String> relIndices = ((KeyIndexableGraph)g).getIndexedKeys(Edge.class);

nodeIndices と relIndices の両方が空です。ブループリント API でグラフ データベースを開くと、自動インデックス機能が無効になります。ブループリント API を使用してデータベースを開いたときに、このインデックスが表示されるようにバッチ処理中に自動インデックスを作成することは可能ですか?

4

1 に答える 1

1
  1. バッチインデックスとバッチインサーターの両方を完全にシャットダウンする必要があります
  2. すべてのプロパティにインデックスを付けるのではなく、ノードの検索に使用する主要なプロパティだけにインデックスを付けたいと思うでしょう。
  3. 後で開始するデータベースと、バッチ挿入中にインデックスを作成した同じプロパティに対して、neo4j 構成で自動インデックス作成を有効にする必要があります。
于 2014-01-27T11:31:03.773 に答える