Как сохранить иерархические данные в графе Redis и извлечь из них поддерево?

id | имя | parent_id

ab | файл | де

объявление | песня | де

до н. Боб | объявление

мн | open.txt | До нашей эры

2 ответа

Если предположить, ab это идентификатор file а также bc родительский идентификатор fileзатем для хранения вы можете использовать утилиту массового вставки

Или вы можете использовать следующий запрос Cypher:

CREATE (A {id:'ab', name: 'file'}), (B {id:'bc', name: 'folder'}), (A)-[:child]->(B)

Для запроса, в зависимости от данных, которые вы хотите извлечь, используйте запрос Cypher, подобный следующему:

MATCH (c)-[:child]->(p) RETURN c,p

Для типа запроса, который вы выполняете, я считаю, что было бы лучше, если бы вы поддерживали обратный край [:parent] и изменили свой запрос следующим образом:

GRAPH.QUERY Makinga "MATCH (r:Resource{Id:'6e3f67da-43ed-11e9-b149-d3f886f8337c'})-[:parent*1..]->(b:Resource) RETURN count(b) as count"

Это связано с тем, как RedisGraph описывает соединения и применяет фильтры.

Другие вопросы по тегам