如何在Neo4j中存储有序孩子的树?如何在Cypher中遍历这种结构?

时间:2018-08-24 10:58:03

标签: neo4j cypher

在Neo4j中存储有序孩子的树的最佳方法是什么?

输入:

1. Title 1
   Some text  1.
2. Title 2
2.1. Title 2.1
     Some text under title 2.1.
2.2. Title 2.2
     Some text under title 2.2.

标题可以是任意的,不一定包含编号。深度是任意的。节点和分支可以属于多个树。

如何取回在一个查询中仍排序的所有元素?

所需的输出:

|-----------+----------------------------+---------|
| Title     | Content                    | Depth   |
|-----------+----------------------------+---------|
| Title 1   | Some text under title 1.   |      0  |
| Title 2   |                            |      0  |    
| Title 2.1 | Some text under title 2.1. |      1  |
| Title 2.2 | Some text under title 2.2. |      1  |
|-----------+----------------------------+---------|

我的问题基于以下事实:关系数据库可以在一个查询中使用嵌套集来检索这种结构。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。从我考虑过的所有选项中,最好的选项看起来是一个整数属性,用于保存“线”的索引。检索时,记录将以该索引为键进入排序的映射。这种方法的明显缺点是在对象之间插入一些东西的情况。需要完全重新索引以保持完整性。对于罕见的编辑,索引可以按10、100等比例缩放,以减少立即重新索引的可能性。

P.S。抱歉,我不使用Cypher,所以这里没有脚本。