如何解决Neo4J 考虑到以前的分组情况,将人与其他人进行独特的分组,这样他们就不会在可能的情况下与同一人分组两次
我真的很新,只是在尝试 Neo4J,我正在考虑构建一个简单的应用程序。
此应用程序有一个人员列表,需要将这些人员分为 2 人的唯一组(或更多,组大小可配置)。
目前我随机执行此操作,但这意味着人们可以与他们以前分组过的人分组。
使用 Neo4J,我想生成这些组,并优先将以前从未被分组的人分组。
只有在人数为奇数时才能将人分成 2 组(总共 9 人,必须有人分成 2 组以确保每个人都被分组)。
目前我有以下结构:
(:Person)-[:HAS_BEEN_MATCHED_WITH]-(:Person)
其中关系具有 times
属性,表示一个人与另一个人匹配的次数(或者在从未匹配的情况下根本不存在关系)。
例如,如果我有以下数据:
CREATE (p1:Person)
CREATE (p2:Person)
CREATE (p3:Person)
CREATE (p1)-[:HAS_BEEN_MATCHED_WITH {times: 2}]->(p2)
CREATE (p1)-[:HAS_BEEN_MATCHED_WITH {times: 1}]->(p3)
结果组应如下所示:
p1 and p3 (p1 has been matched the least times with p3)
p2 and p3 (p2 has no matches with p3)
以上,p3
因参加人数为奇数而被匹配两次,以确保每个人都匹配。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。