Как хранить дерево с заказанными детьми в Neo4j?Как пройти такую ​​структуру в Cypher? - PullRequest
0 голосов
/ 24 августа 2018

Как лучше всего хранить дерево с заказанными детьми в 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 голосов
/ 25 августа 2018

Я встретил ту же проблему.Из всех опций, которые я рассмотрел, лучший выглядел как целочисленный атрибут для хранения индекса «строки».При извлечении записи попадают в отсортированную карту с этим индексом в качестве ключа.Очевидным недостатком этого подхода является случай, когда что-то должно быть вставлено между объектами.Полная переиндексация необходима для сохранения целостности.Для редких правок индекс можно масштабировать в 10, 100 и т. Д., Чтобы уменьшить вероятность немедленного повторного индексирования.

PS Извините, я не работаю с Cypher, поэтому здесь нет сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...