大多数按相互关系排序neo4j

大多数按相互关系排序neo4j,neo4j,cypher,Neo4j,Cypher,我想在cypher中创建一个查询,但有一部分我有问题,这就是它的外观 选择一个线程 获取与该线程交互的用户 按与这两个线程交互的用户数量(第一个-预选的一个和第二个,我正在寻找)对顶级线程进行排序 计数应该有帮助。大概是这样的: MATCH (t1:Thread)<-[:USED]-(u:User)-[:USED]->(t2:Thread) WHERE t1.id = 123 RETURN t1, t2, COUNT(DISTINCT u) AS cnt ORDER BY cnt

我想在cypher中创建一个查询,但有一部分我有问题,这就是它的外观

  • 选择一个线程
  • 获取与该线程交互的用户
  • 按与这两个线程交互的用户数量(第一个-预选的一个和第二个,我正在寻找)对顶级线程进行排序
计数应该有帮助。大概是这样的:

MATCH (t1:Thread)<-[:USED]-(u:User)-[:USED]->(t2:Thread)
WHERE t1.id = 123
RETURN t1, t2, COUNT(DISTINCT u) AS cnt
ORDER BY cnt DESC
匹配(t1:线程)(t2:线程)
其中t1.id=123
返回t1,t2,计数(不同的u)作为cnt
按cnt DESC订购

DISTINCT
选项会产生开销,只有当
用户
可能多次与同一对线程相关时,才应使用该选项。

谢谢,我会检查一下