【问题标题】:Degree centrality modified for a specific situation针对特定情况修改的度中心性
【发布时间】:2019-05-15 21:25:08
【问题描述】:

我创建了一个查询,它将匹配传入度数为 0 且传出度数不为 0 的节点。像这样,我可以识别图表中的根本疾病(没有祖先的疾病)。

我的图表中有两种类型的关系:HAS_CHILD(作为疾病的直接后代)和 HAS_DESCENDANT(作为疾病的后代)

MATCH (u:Disease) where size((u)<-[:HAS_CHILD|HAS_DESCENDANT]-())=0  and size((u)-[:HAS_DESCENDANT]->())<>0 RETURN u.prefered_name, size((u)-[:HAS_CHILD]->()) AS Parent_of,size((u)<-[:HAS_CHILD]-()) AS Children_of ORDER BY size((u)-[:HAS_CHILD]->());

此查询的前 4 个结果显示两个度数均为 0,但我指定其中一个度数应不同于 0。为什么给我这个奇怪的结果?

我希望查询将显示结果而不包括前 4 条记录。当我查看查询时,我找不到任何错误,在我看来,它应该可以工作

【问题讨论】:

  • 我执行相同的查询,只是将 size((u)-[:HAS_DESCENDANT]->())0 更改为 size((u)-[:HAS_CHILD]->()) 0,在这种情况下,一切都按我的预期进行
  • 我需要两个查询都能按预期工作,以便能够识别所有聚合器节点。

标签: neo4j


【解决方案1】:

此查询的前 4 个结果显示度数均为 0,但我指定 其中一个度数应该不同于 0。为什么给我 这个奇怪的结果?

检查您的查询,您指定了HAS_DESCENDANT

size((u)-[:HAS_DESCENDANT]->())<>0

但是在return语句中

 size((u)-[:HAS_CHILD]->()) AS Parent_of

你正在获得HAS_CHILD的结果

【讨论】:

  • 感谢您注意到我的错误。这帮助很大!
猜你喜欢
  • 2020-03-01
  • 2020-05-31
  • 2017-07-12
  • 2011-07-04
  • 2011-08-18
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多