问题描述
我真的很新,只是在尝试 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 (将#修改为@)