【问题标题】:How can I get mutual relations in Neo4J?我怎样才能在 Neo4J 中获得相互关系?
【发布时间】:2022-07-20 23:16:06
【问题描述】:

我有这样的关系:

Keyword - PAID_BY -> App

在这里,我想通过应用查找相互关键字。

例子:

KW1   PAID_BY  App1
KW2   PAID_BY  App1
KW1   PAID_PY  App2
KW1   PAID_PY  App3
KW2   PAID_PY  App3

当我尝试查找 App1 与其他应用程序的共同关键字时。我应该找到类似的结果:

KW1 is mutual keyword between App1 and App2 
and KW1 and KW2 is mutual keyword between App1 and App3

这是我的密码查询:

MATCH a1:App{id:$idSource} <- PAID_BY - k:Keyword - PAID_BY -> a2:App 
RETURN a1,
       a2,
       COUNT(DISTINCT k) AS mutualKeywordCount,
       COLLECT(DISTINCT k) AS mutualKeywords

我试过了,但结果并不明显。有什么建议吗?

应该是 App1 的输入:

App1  App2 1 KW1
App1  App3 2 KW1,KW2

但它看起来像:

App1  App2 1 KW1
App1  App3 2 KW1,KW2
App1  App3 2 KW1,KW2

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    DISTINCT 也可以用在 RETURN 中。请试试这个:

    RETURN DISTINCT a1,
           a2,
           COUNT(DISTINCT k) AS mutualKeywordCount,
           COLLECT(DISTINCT k) AS mutualKeywords
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2011-06-04
      • 2023-03-22
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2021-12-19
      相关资源
      最近更新 更多