私がやっていることは、すべてのプロファイルを取得することです *ユーザープロファイルと特定の有向関係を持っている* そして、それらに代替プロファイルがある場合 *ユーザーの代替プロファイルがそれに関連している場合に備えてそれらを取得します。関係の方向性も必要です。
私の問題は、約 10000 ノードでデータを取得するのに約 5 秒かかることです。ノードと関係に自動インデックスがあります。
これは私のノードがどのように関連しているかです:
User-[:profile]->ProfileA-[:related]->ProfileB<-[?:me]->ProfileB2<-[?:related]-ProfileA2<-[:profile]-User
私のクエリは次のようになります。
START User=node({source})
MATCH User-[:profile]->ProfileA-[rel:related]->ProfileB
WHERE User-->ProfileA-->ProfileB
WITH ProfileA, rel, ProfileB
MATCH ProfileB<-[?:me]->ProfileB2<-[relB?:related]-ProfileA2<-[:profile]-User
WHERE relB IS NULL OR User-->ProfileA-->ProfileB<-->ProfileB2<--ProfileA2<--User
RETURN ProfileB, COLLECT(ProfileB2), rel, relB
LIMIT 25
クエリを最適化する方法はありますか?
- プロファイル: プロファイル B
- ユーザー プロファイル: ProfileA
- 代替プロファイル: ProfileB2
- ユーザーの代替プロファイル: ProfileA2