/ / Obtener ruta específica como salida usando cypher (Neo4j) - neo4j, cypher

Obtenga una ruta específica como salida usando cypher (Neo4j) - neo4j, cypher

Tengo una red gráfica como se muestra a continuación

enter image description here

Lo que quiero es obtener "solo" la ruta más larga entre el Nodo 1 y el Nodo 4. He escrito la consulta de la siguiente manera:

MATCH p = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WITH max(length(p)) AS pathLength
MATCH p1 = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WHERE length(p1) = pathLength
RETURN p1

Sin embargo, la consulta devuelve todas las relaciones entre los nodos (la imagen de arriba es en realidad el resultado de la consulta) que forman parte de la ruta, ¿hay alguna forma de evitar eso?

Nuevo en Neo4j, cualquier ayuda sería apreciada.

Gracias

Respuestas

1 para la respuesta № 1

Estas usando el pathLength De todos los caminos posibles entre n y n1. Trate de ordenar y limitar pathLength:

MATCH p = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WITH length(p) AS pathLength
ORDER BY pathLength DESC // greater path lengths first
LIMIT 1 // get only the greatest
MATCH p1 = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WHERE length(p1) = pathLength
RETURN p1

Editar:

Además, han intentado proporcionar un valor estático (3) en la condición where. No parecía cambiar nada.

Probablemente la opción "Conectar nodos de resultados" desu navegador Neo4j está habilitado. Cuando esta opción está habilitada, el navegador Neo4j intentará conectar los nodos resultantes en el modo de visualización de gráficos. Para deshabilitarlo Para lograr el resultado deseado, debe ir a la sección "Visualización de gráficos" de la Configuración del navegador Neo4j y desmarque la opción "Conectar nodos de resultados" como se muestra en la siguiente imagen:

Ajustes de visualización de gráficos

Las relaciones "adicionales" se muestran solo en el modo de visualización de gráficos. Si cambia a Tabla, Texto o Código, estas relaciones no se muestran.