Начиная с более широкой картины, я хотел бы применить некоторые функции из плагина Graph Algoritms к схеме базы данных.
Я использую этот запрос через браузер Neo4j:
CALL algo.betweenness(
"CALL apoc.meta.graph() YIELD nodes UNWIND(nodes) AS n RETURN id(n) AS id",
"CALL apoc.meta.graph() YIELD nodes UNWIND(nodes) AS n MATCH (a)--(b) RETURN id(a) AS source, id(b) AS target",
{graph:'cypher', write: true})
но он отвечает с ошибкой:
Neo.ClientError.Procedure.ProcedureCallFailed: Failed to invoke procedure `algo.betweenness`: Caused by: org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException: Unable to load NODE with id -998.
Я проверил, и оба apoc.meta.graph()
и db.schema()
не сохраняют идентификаторы узлов между запросами.Более того, запрос:
CALL apoc.meta.graph()
YIELD nodes
UNWIND(nodes) AS n
RETURN n.name
возвращает только значения null
, хотя RETURN n
будет возвращать узлы со свойствами name
и count
(видимыми в представлениях «График» и «Таблица / текст» из браузера)..
Итак, мой вопрос: возможно ли сохранить идентификаторы, присвоенные узлам через функции обнаружения схемы, и использовать их в алгоритмах графа, как показано в приведенном выше запросе?Если это невозможно, не могли бы вы предложить другой подход к моей проблеме?
Заранее спасибо!