要求:找出两个或多个相关的匹配节点并将它们显示为组,而不重复所有可能的匹配组合
数据结构:
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 | 实体名称1 | entity1 的电话 | entity2 的电话,entity3 的电话 | entity2 的名称,entity3 的名称 | entity2的电话,entity3的电话
第 2 行 | 实体2 | 实体名称2 | entity2 的电话 | entity1 的电话 | 实体名称1 | 实体电话1
第 3 行 | 实体3 | 实体名称3 | entity3 的电话 | entity1 的电话 | 实体名称1 | 实体电话1
问题:只有结果集的第一行就足够了。第 2 行和第 3 行不是必需的,因为它们已经是第一行集合的一部分。
有人请帮助我如何构建一个密码查询,以便我在上面的示例中只获得行