4
我使用圖數據庫Neo4J建模了有向樹結構。所以我有這樣的:http://ouwarovite.net/YAPC/220px-Binary_tree.svg.png(不是強制二進制)用Neo4J對有向樹進行泛型遍歷
我的數據庫的用戶可以隨意添加現有節點的子節點,所以樹的高度和單節點的程度是未知的。
現在,我想像這樣查詢我的樹:從節點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)
有沒有更簡單/更好的方式來用更好的表現,也許這樣做嗎?