получение отношений при шифровании при запросе ShorttestPath - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь найти кратчайший путь между двумя узлами, и я хотел бы получить отношения (начальный узел, конечный узел и тип), чтобы я мог генерировать подграф в Java.

Я использую этоcypher:

MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[*..15]-(nodeB)) WHERE ID(nodeA) = 1332076 AND ID(nodeB) = 1459451 UNWIND nodes(p) as n UNWIND relationships(p) as r RETURN collect(distinct { id : id(n), labels : labels(n), data: n}) as nodes, collect(distinct r) as relationships

Моя проблема в том, что отношения возвращаются в формате, который я не понимаю.Примерно так:

{ "TFFamily": "MADS", "Category": "DIRECT", "PubMedID": "UNKNOWN", "Reference": "NA", "Interaction": "UNCONFIRMED", "TargetType": "AT2G36590", "Confirmation": "NO", "isTF": "AT2G36590" } { "HIT_END": "104", "BLAST_alignement_length": "52", "BLAST_evalue": "4.00E-27", "HIT_START": "53", "BLAST_percentage_identity": "82.69", "percentage_match": "43.7", "QUERY_START": "58", "clusterid": "CLUSTER_5713", "QUERY_END": "109", "BLAST_mismatches": "9", "BLAST_nrofgaps": "0"}

что такое отношение (р)?Есть ли способ получить startId, endId и тип?

Спасибо

РЕДАКТИРОВАТЬ:

Возможное решение:

Не уверен, если этолучший вариант, но я нашел там startNode (r) и endNode (r)

" MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[%s*..%s]-(nodeB))" + //
                " WHERE ID(nodeA) = {1} AND ID(nodeB) = {2} " +  //
                " UNWIND nodes(p) as n" + //
                " UNWIND relationships(p) as r" + //
                " RETURN COLLECT(distinct { id : id(n), labels : labels(n), data: n}) as nodes, " + //
                " COLLECT(distinct { relationshipId : ID(r), startId : ID(startNode(r)), labels : type(r) , endId: ID(endNode(r))}) as edges"; //
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...