gpt4 book ai didi

graph - 使用 Neo4J 对有向树进行通用遍历

转载 作者:行者123 更新时间:2023-12-01 01:24:55 28 4
gpt4 key购买 nike

我使用图形数据库 Neo4J 建模了一个有向树结构。所以我有这样的事情:http://ouwarovite.net/YAPC/220px-Binary_tree.svg.png (非强制性二进制)

我的数据库的用户可以随意添加现有节点的子节点,所以树的高度和单个节点的度数是未知的。

现在,我想这样查询我的树:从节点 x 开始,给我所有叶子 x 的后代。

这种查询是否可以使用 Gremlin 或 Cypher 执行,如果可以,如何做到这一点以获得最大的性能? (我还没有找到对“通用”树执行查询的可能性,因为您总是必须指定最大深度)

我知道,使用 REST/JSON 框架和 JAVA API 是可能的:

POST /db/data/node/51/traverse/node 
{
"return_filter" :
{
"body" : "position.endNode().hasProperty('leave')" ,
"language" : "javascript"
},
"relationships" : [ { "type" : "_default", "direction" : "out" } ] ,
"prune_evaluator" : { "name" : "none" , "language" : "builtin" }
}

(我的叶子有属性“离开”,我的边缘没有类型 -> 所以 _default)

有没有更简单/更好的方法来做到这一点,也许具有更好的性能?

最佳答案

Cypher 看起来像这样:

start root=node({rootId}) 
match root-[*]->child
where child.leave
return child
rootId作为要传入的参数。

关于graph - 使用 Neo4J 对有向树进行通用遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com