使用 neo4j 和/或 python 查找节点的路径(深度)步骤

阿波罗

我有以下图表

图形

这些关系中的每一个都是“ USES_COMPONENT

在对 Neo4j 密码结果进行标准化后,我有一个类似的结构

{
    '1': {
        'label': 'Product', 
        'properties': {...}, 
        'type': 'VERTEX'
    },
    '2': {
        'label': 'Component', 
        'properties': {...}, 
        'type': 'VERTEX'
    }, 
    '3': {
        'label': 'USES_COMPONENT', 
        'properties': {...}, 
        'type': 'EDGE', 
        'direction': 'OUT', 
        'from': '1', 
        'to': '2'
    }
}

最终描述了整个图(与原始密码响应非常相似)

我当前的密码查询是:(Froot Loops 的 uuid 是a1。我分配了这个。)

MATCH p = (pr:Product)-[:USES_COMPONENT*]->()
WHERE pr.meta_uuid = 'a1'
RETURN p

我需要做的是找出每个组件离根(Froot Loops)多少步

所以Corn Flour Blend将是1一步之遥,而Whole Grain Yellow Corn Flour将是2几步之遥。

我对密码实现或 python 实现感到满意。或者,两者的结合。

Some notes:

  1. I am in full control of the graph data, and the way it is normalized (above). I'd like to keep it as close to this as possible, but I can tweak it
  2. Performance is important, but none of these graphs will be rediculously large. I would be surprised if (total) any product had more than 200 components (at any depth)
  3. I am happy to include third-party libraries, if anyone knows of one
  4. I am only worried about the USES_COMPONENT relationship, and that will never be circular. No matter how far out you follow a USES_COMPONENT path, it will never hit Froot Loops.

I appreciate everyone's help. I am not even entirely sure what to google, so if I've missed something obvious, a link would be appreciated.

Bruno Peres

由于与根距离的节点如您在评论中所说的那样足够,因此此查询应该有效:

MATCH p = (pr:Product)-[r:USES_COMPONENT*]->(n)
WHERE pr.meta_uuid = 'a1'
RETURN n, size(r)

此查询使用size()函数来获取(根)和每个节点r之间关系prn

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

Neo4j 最大深度和路径

来自分类Dev

使用Bulbs / python和Neo4j 2.0的错误消息

来自分类Dev

如何使用Neo4j Spring数据存储库返回节点和关系

来自分类Dev

Neo4j-使用Cypher从节点开始并遍历图到指定深度并查找节点和关系

来自分类Dev

使用Neo4j Spatial查找节点

来自分类Dev

我想通过使用Java中的neo4j创建节点,也要使用架构和索引

来自分类Dev

使用REST API和Neo4j吗?

来自分类Dev

Neo4j:对子查询使用“ order by”和“ limit”

来自分类Dev

使用Rails和Neo4j进行API分页

来自分类Dev

Neo4j:传递查询和节点排序

来自分类Dev

重复的节点创建了neo4j和nodejs

来自分类Dev

Neo4j Lucene查询关系和节点属性

来自分类Dev

neo4j添加新节点和关系的性能

来自分类Dev

Neo4j导入节点和关系

来自分类Dev

Neo4j - Cypher 节点和关系

来自分类Dev

如何在Neo4j中使用单个查询删除所有子节点和关系?

来自分类Dev

在Neo4j中,在使用Java API时是否有任何方法可以限制路径中的节点和关系类型?

来自分类Dev

使用 Neo4J 使用纬度/经度查找距离

来自分类Dev

如何使用python螺栓驱动程序将许多属性设置为neo4j节点?

来自分类Dev

使用集合删除Neo4J节点标签?

来自分类Dev

使用Java从Neo4j查询节点

来自分类Dev

使用架构索引在Neo4j中搜索节点

来自分类Dev

使用Postman工具在Neo4j中创建节点

来自分类Dev

Neo4j:对节点使用数字索引

来自分类Dev

neo4j使用关系查找相关属性

来自分类Dev

如何从 Neo4j 路径中按顺序显示所有节点和关系的名称

来自分类Dev

neo4j:如何返回带有节点和关系标签的路径?

来自分类Dev

Neo4j的在线练习:电影数据库-查找“朋友”和“路径”问题

Related 相关文章

  1. 1

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

  2. 2

    Neo4j 最大深度和路径

  3. 3

    使用Bulbs / python和Neo4j 2.0的错误消息

  4. 4

    如何使用Neo4j Spring数据存储库返回节点和关系

  5. 5

    Neo4j-使用Cypher从节点开始并遍历图到指定深度并查找节点和关系

  6. 6

    使用Neo4j Spatial查找节点

  7. 7

    我想通过使用Java中的neo4j创建节点,也要使用架构和索引

  8. 8

    使用REST API和Neo4j吗?

  9. 9

    Neo4j:对子查询使用“ order by”和“ limit”

  10. 10

    使用Rails和Neo4j进行API分页

  11. 11

    Neo4j:传递查询和节点排序

  12. 12

    重复的节点创建了neo4j和nodejs

  13. 13

    Neo4j Lucene查询关系和节点属性

  14. 14

    neo4j添加新节点和关系的性能

  15. 15

    Neo4j导入节点和关系

  16. 16

    Neo4j - Cypher 节点和关系

  17. 17

    如何在Neo4j中使用单个查询删除所有子节点和关系?

  18. 18

    在Neo4j中,在使用Java API时是否有任何方法可以限制路径中的节点和关系类型?

  19. 19

    使用 Neo4J 使用纬度/经度查找距离

  20. 20

    如何使用python螺栓驱动程序将许多属性设置为neo4j节点?

  21. 21

    使用集合删除Neo4J节点标签?

  22. 22

    使用Java从Neo4j查询节点

  23. 23

    使用架构索引在Neo4j中搜索节点

  24. 24

    使用Postman工具在Neo4j中创建节点

  25. 25

    Neo4j:对节点使用数字索引

  26. 26

    neo4j使用关系查找相关属性

  27. 27

    如何从 Neo4j 路径中按顺序显示所有节点和关系的名称

  28. 28

    neo4j:如何返回带有节点和关系标签的路径?

  29. 29

    Neo4j的在线练习:电影数据库-查找“朋友”和“路径”问题

热门标签

归档