Как сохранить идентификаторы узлов между вызовами db.schema - PullRequest
1 голос
/ 12 марта 2019

Начиная с более широкой картины, я хотел бы применить некоторые функции из плагина 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 (видимыми в представлениях «График» и «Таблица / текст» из браузера)..

Итак, мой вопрос: возможно ли сохранить идентификаторы, присвоенные узлам через функции обнаружения схемы, и использовать их в алгоритмах графа, как показано в приведенном выше запросе?Если это невозможно, не могли бы вы предложить другой подход к моей проблеме?

Заранее спасибо!

...