他のノードとの特定の関係タイプを持たないデータベース内のすべてのノードを選択したいと考えています。
これが私のデータベース構造です: イベントノードを発行するユーザーノードがあります。パブリッシュ関係はより具体的で、さまざまなタイプの関係があります。たとえばtype1
、 とtype2
です。
type1
イベントとの関係はあるが、イベントとの関係がないすべてのユーザー ノードをすばやく選択するにはどうすればよいですかtype2
。
私が今使っているクエリは次のとおりです。
START u = node:users("*:*")
MATCH (ev1)<-[r1:type1]-(u)-[r2?:type2]->(ev2)
WHERE r2 IS NULL
RETURN u
問題は、r2 がオプションの関係であることです。これにより、上記のクエリが非常に遅くなり、neo4j ドキュメントの内容が確認されます。
このクエリの速度を改善するにはどうすればよいですか? データをより適切にモデル化してパフォーマンスを向上させることはできますか?
ありがとうございました!アレックス