微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Neo4J 考虑到以前的分组情况,将人与其他人进行独特的分组,这样他们就不会在可能的情况下与同一人分组两次

如何解决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 举报,一经查实,本站将立刻删除。