私は2-nの開始ノードを名前で知っていて、到達可能なノードを見つける必要があるneo4jのCypherステートメントを作成しようとしていますすべての開始ノードによって実行されます。3人以上から始まるCypherステートメントでお互いの友だちを見つける
最初に私はそれが (start1)-[*..2]->(main)<-[*..2]-(start2)
のように扱わなく、私の場合、私は多くの場合、その後2始動が、私は名前で知っているの周りに6ポイントアップ持っていることができ、「共通の友人」の状況に類似していた取り払わ。
基本的に私は3番目、4番目などのノードをサイファーに含めることができますが、それらの間に共通のルートを見つけることができないことに困惑しています。私は、彼らが共通の友人(アンダース)を持っているかどうかを確認するために、「ベッキー」と「セザール」「Dilshad」で始まるパスを必要とするのNeo4jのウェブサイトから、上記の例で
除く「フィリパ」 「エミール」は3人とも友人ではないからです。これまでのところ私はプログラム的にそれが
MATCH (start1 {name:'Person1'}), (start2 {name:'Person2'}),
(start3 {name: 'Person3'}), (main)
WHERE (start1)-[*..2]->(main) AND
(start2)-[*..2]->(main) AND
(start3)-[*..2]->(main) RETURN distinct main
のように見えます。しかし、私は、パラメータ
として名前のリストを使用することができ、おそらくCYPHERで、よりエレガント/効率的な方法がある場合、私は思っていた文を作成します
ご協力いただきありがとうございます。実際には、可変数の開始点を使用して生産するのがより効率的で、さらに簡単です。 –
こんにちは@StefanKüppersあなたは大歓迎です!この回答があなたの質問を解決した場合は、チェックマークをクリックして[受諾](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 –