Find all shortest Paths between given source and target

Hi there,

I am new to the graph data science library and am a bit unsure how to achieve the following goal. I have two biological entities (nodes) and i want the shortest path between them. If there are several paths of the same length i want all of them. To accomplish that I am projecting the graph to memory and then run the Dijkstra Source - Target shortest Path as a query as follows:

MATCH (source:Entity {name: 'tissues'}), (target:Entity {name: 'McArdle'})

CALL gds.shortestPath.dijkstra.stream('Knowledge', {

sourceNode: source,

targetNode: target

})

YIELD index, sourceNode, targetNode, nodeIds, path

RETURN

gds.util.asNode(sourceNode).name AS sourceNodeName,

gds.util.asNode(targetNode).name AS targetNodeName,

[nodeId IN nodeIds | gds.util.asNode(nodeId).name] AS nodeNames,

[x in nodes(path) | properties(x)] AS pathProperties

ORDER BY index

This works fine for many cases, however I oftentimes have multiple paths between two nodes with the same length. I have attached an example in which 4 valid shortest paths exist between the node "tissues" and the node "exercise efficiency". I do want to find all of these shortest paths not only one of them with my query. Do i need to use another algorithm to achieve my goal or to alter my query?

Thanks for your help :slightly_smiling_face: