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 (将#修改为@)