要件: 2 つ以上の関連する一致するノードを見つけて、それらをグループとして表示し、可能な一致の組み合わせをすべて繰り返すことはありません。
データ構造:
E1 はエンティティ 1 N1 はエンティティ 1 の名前 P1 はエンティティ 1 の電話番号
E2 はエンティティ 2 N2 はエンティティ 2 の名前 P2 はエンティティ 2 の電話番号
E3 はエンティティ 3 です N3 はエンティティ 3 の名前です P3 はエンティティ 3 の電話番号です
使用したクエリ:
start e1=node:entities('entityID:90754 OR entityID:113184 OR entityID:29472')
match (n1)<-[:HAS_NAME]-(e1)-[:HAS_PHONE]-(p1), (p1)-[m:MATCHES_TO]-(p2), (p2)-[:HAS_PHONE]- (e2)-[:HAS_NAME]-(n2), (n1)-[nm:MATCHES_TO]-(n2)
return e1, n1, p1, collect(e2), collect(n2), collect(p2);
クエリの出力
# | e1 | n1 | p1 | 収集 (e2) | 収集 (n2) | 収集(p2)
行 1 | エンティティ1 | entity1 の名前 | entity1 の電話番号 | entity2 の電話、entity3 の電話 | entity2 の名前、entity3 の名前 | entity2 の電話、entity3 の電話
行 2 | エンティティ 2 | entity2 の名前 | entity2 の電話 | entity1 の電話番号 | entity1 の名前 | entity1 の電話
行 3 | エンティティ3 | entity3 の名前 | entity3 の電話 | entity1 の電話番号 | entity1 の名前 | entity1 の電話
問題: 結果セットの最初の行だけで十分です。行 2 と行 3 は、最初の行のコレクションの一部であるため、必須ではありません。
上記の例で行のみを取得するように暗号クエリを作成する方法を教えてください