В Neo4j Bloom отсутствуют узлы для apoc.path.subgraphAll, в то время как настольный браузер Neo4j работает должным образом.

Поэтому, когда я запускаю следующий запрос к своей БД, я получаю 168 узлов.

MATCH (u:Undefined)
CALL apoc.path.subgraphNodes(u, {}) YIELD node
RETURN node

Это работает, как и ожидалось, как в Neo4j Bloom (1.3.2), так и в браузере рабочего стола (1.2.8).

Если я выполню этот запрос, чтобы я мог также получить отношения, то я получу 154 узла, возвращаемых в Bloom, в то время как Desktop Browser по-прежнему правильно возвращает 168 узлов, как и ожидалось.

MATCH (u:Undefined)
CALL apoc.path.subgraphAll(u, {}) YIELD nodes, relationships
RETURN nodes, relationships

В моем графе 154 узла связаны в этом запросе в один большой взаимосвязанный блок. Есть еще 3 небольших скопления из 3, 3 и 8 узлов, которые составляют недостающие 14 узлов. Это то, чего не хватает Блуму.

Я что-то упускаю? Есть ли проблема в Блуме?

У кого-нибудь есть лучшее представление о том, как я могу вернуть все узлы и отношения, которые начинаются с заданного типа/метки узла, в Bloom, если это не сработает?


person Stephen Mc Gowan    schedule 11.06.2020    source источник


Ответы (1)


Похоже, что Neo4j Bloom не обрабатывает массив узлов и массив отношений в качестве входных данных. Попробуйте следующий запрос:

MATCH (u:Undefined)
CALL apoc.path.subgraphAll(u, {}) YIELD nodes, relationships
UNWIND relationships as rel
RETURN startNode(rel),rel,endNode(rel)

Не уверен, что это сработает. Вы также можете попробовать использовать процедуру APOC, которая возвращает пути, такие как, например, apoc.path.expand.

person Tomaž Bratanič    schedule 11.06.2020