使用Cypher在Neo4j中找到具有图案的最大路径

亨利·库克(Henri Cook)

我具有以下节点类型和要查找的模式:

节点标签

问题结果

关系

答案(带有“标题”字段)

我想“通过“否”答案找到彼此相关的所有问题,并且对同一结果都回答“是”” –我怀疑数据库中有成百上千个这样的组,其中有些仅仅是两个节点大小,有些最多5或6个节点。不超过六个。

因此,我可以在2组中匹配所有由nos连接的答案:

(结果)<-[是]-(问题)-> [否]->(问题)-> [是]->(结果)

但我不知道如何将其应用于3或4组。我以为我也许可以做一个顺子:

(问题)<-[no] [0 .. *]-(问题)-并找到所有由nos连接的问题,然后在WHERE子句中添加类似WHERE的所有匹配问题,均指向->结果-但我没有想法如何用密码表达

有人可以帮忙吗?

赛博

[重新编辑]

这可能对您有用。

MATCH p=(oc:Outcome)<-[:Answer {title: 'yes'}]-(q1:Question)-[:Answer* {title: 'no'}]->(q2:Question)-[:Answer {title: 'yes'}]->(oc)
WHERE
  NOT (
    (oc)<-[:Answer {title: 'yes'}]-(:Question)-[:Answer {title: 'no'}]->(q1) OR
    (q2)-[:Answer {title: 'no'}]->(:Question)-[:Answer {title: 'yes'}]->(oc)
  ) AND
  ALL(q IN NODES(p)[1..-1] WHERE (q)-[:Answer {title: 'yes'}]->(oc))
RETURN oc, NODES(p)[1..-1] AS questions;

子句中NOT (...)术语WHERE可确保我们仅使用的最长有效序列Questions

每个结果行都包含一个共享结果和一个有序的Question节点集合。

该查询可能需要很长时间才能完成,因为它没有为可变长度模式指定上限。如果这是一个问题,则可能需要指定一个适当的上限(例如Answer*..5)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Neo4j中找到具有多个节点和多个关系的最短路径

来自分类Dev

Neo4j Cypher替代路径

来自分类Dev

Neo4j Cypher查询具有层次关系

来自分类Dev

Neo4j:Cypher:如何通过图案去除标签?

来自分类Dev

Neo4j Cypher Query基于开始-结束条件列出具有单个关系的节点的路径

来自分类Dev

Neo4j Cypher Query基于开始-结束条件列出具有单个关系的节点的路径

来自分类Dev

neo4j Cypher-遍历可变长度路径,但在找到标签时停止

来自分类Dev

Neo4j错误-无法在路径数据的JSON中找到期望的属性(密码)

来自分类Dev

如何在Neo4j中找到跳数最少的最短路径?

来自分类Dev

Neo4j错误-无法在路径数据的JSON中找到期望的属性(密码)

来自分类Dev

使用 Cypher 在 Neo4j 中查找所有节点和关系直到定义的路径长度

来自分类Dev

neo4j cypher避免重复路径

来自分类Dev

Neo4j cypher查询已知路径

来自分类Dev

Neo4j Cypher具有超严格的模式理解能力-还是我使用错了?

来自分类Dev

Neo4j cypher-搜索节点之间没有路径的节点

来自分类Dev

Neo4J(Cypher)查询以查找不遵循模式的所有路径

来自分类Dev

Neo4j Cypher查询有关找到志趣相投的人的查询

来自分类Dev

使用可变长度路径时Neo4J Cypher抓取关系的类型

来自分类Dev

在neo4j中使用cypher收集不同路径长度的节点

来自分类Dev

在Neo4j中找到DAG的根

来自分类Dev

如何在neo4j中找到节点的邻居?

来自分类Dev

如何在neo4j中找到没有传入关系的节点

来自分类Dev

在Neo4j中找到通过给定节点的所有简单循环

来自分类Dev

Neo4j和Cypher:匹配与目标节点具有单一关系的节点

来自分类Dev

Neo4j / Cypher /遍历节点具有特定标签

来自分类Dev

Neo4j Cypher查询-具有正则表达式的查询属性数组

来自分类Dev

Neo4j / Cypher-查找具有2个以上链接的已连接节点

来自分类Dev

Neo4j / Cypher删除具有关联关系的节点和子节点

来自分类Dev

Neo4j / Cypher-查找具有2个以上链接的已连接节点

Related 相关文章

  1. 1

    如何在Neo4j中找到具有多个节点和多个关系的最短路径

  2. 2

    Neo4j Cypher替代路径

  3. 3

    Neo4j Cypher查询具有层次关系

  4. 4

    Neo4j:Cypher:如何通过图案去除标签?

  5. 5

    Neo4j Cypher Query基于开始-结束条件列出具有单个关系的节点的路径

  6. 6

    Neo4j Cypher Query基于开始-结束条件列出具有单个关系的节点的路径

  7. 7

    neo4j Cypher-遍历可变长度路径,但在找到标签时停止

  8. 8

    Neo4j错误-无法在路径数据的JSON中找到期望的属性(密码)

  9. 9

    如何在Neo4j中找到跳数最少的最短路径?

  10. 10

    Neo4j错误-无法在路径数据的JSON中找到期望的属性(密码)

  11. 11

    使用 Cypher 在 Neo4j 中查找所有节点和关系直到定义的路径长度

  12. 12

    neo4j cypher避免重复路径

  13. 13

    Neo4j cypher查询已知路径

  14. 14

    Neo4j Cypher具有超严格的模式理解能力-还是我使用错了?

  15. 15

    Neo4j cypher-搜索节点之间没有路径的节点

  16. 16

    Neo4J(Cypher)查询以查找不遵循模式的所有路径

  17. 17

    Neo4j Cypher查询有关找到志趣相投的人的查询

  18. 18

    使用可变长度路径时Neo4J Cypher抓取关系的类型

  19. 19

    在neo4j中使用cypher收集不同路径长度的节点

  20. 20

    在Neo4j中找到DAG的根

  21. 21

    如何在neo4j中找到节点的邻居?

  22. 22

    如何在neo4j中找到没有传入关系的节点

  23. 23

    在Neo4j中找到通过给定节点的所有简单循环

  24. 24

    Neo4j和Cypher:匹配与目标节点具有单一关系的节点

  25. 25

    Neo4j / Cypher /遍历节点具有特定标签

  26. 26

    Neo4j Cypher查询-具有正则表达式的查询属性数组

  27. 27

    Neo4j / Cypher-查找具有2个以上链接的已连接节点

  28. 28

    Neo4j / Cypher删除具有关联关系的节点和子节点

  29. 29

    Neo4j / Cypher-查找具有2个以上链接的已连接节点

热门标签

归档