私は現在、Neo4j で何ができるかを試しています。私のデータベースは、 TSV ファイルからhttps://github.com/jexp/batch-importを使用してインポートされた、約 54000 のノードと 10M の関係 (2 つの関係タイプ) で構成されています。私が見つけたのは、妥当な時間内にクエリ結果を取得するためにインデックスが必要だということです。
私が作成したい典型的なクエリの 1 つは、特定のタイプに接続されているノードを一覧表示することです。接続しているノードには特定の値があります。何かのようなもの:
START
a=node(*)
MATCH
(a)-[r]->(b)
WHERE
id(a) <> 0
AND id(b) <> 0
AND type(r) = 'ASSOCIATION'
AND a.attr1 = 'value'
AND b.attr1 = 'value'
RETURN
a, b LIMIT 200.
当然、このクエリは決して完了しません。
それを念頭に置いて、既存のデータベースでこの種のクエリの関係インデックスを (バッチ作成?) する最も簡単な方法は何ですか? また、特定の属性値を持つノードのインデックスは?
これは Web コンソールから実行できるものですか、それとも後で実行できますか? neo4j のマニュアルを読んで、ノードごとにデータをロードし、データベースの作成中にインデックスを作成するカスタム Java 実装を作成する必要があることがわかりました。個人的には python を使いたいのですが、python バインディングが遅すぎて、現在のデータベースをインポートすることさえできませんでした。