cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! Site maintenance this Wednesday, February 1. Disruptions expected as we migrate the forums.

Can Dijkstra Single-Source be implemented on data with different labels?

marcelix161
Node Clone

I'm newb on Neo4j, and I'm studying following Dijkstra Single-Source algorithm from the docs:

MATCH (source:Location {name: 'A'})
CALL gds.allShortestPaths.dijkstra.stream('myGraph', {
    sourceNode: source,
    relationshipWeightProperty: 'cost'
})
YIELD index, sourceNode, targetNode, totalCost, nodeIds, costs, path
RETURN
    index,
    gds.util.asNode(sourceNode).name AS sourceNodeName,
    gds.util.asNode(targetNode).name AS targetNodeName,
    totalCost,
    [nodeId IN nodeIds | gds.util.asNode(nodeId).name] AS nodeNames,
    costs,
    nodes(path) as path
ORDER BY index

Would it be possible to apply this algorithm to dataset with different properties?
In the given example all nodes have the same property name.

1 ACCEPTED SOLUTION

Hey @marcelix161 ,
yes you can also use the algorithm with nodes that have different properties.
The name property is used here to give a easy-to-read description of the node.
FYI: gds.util.asNode(sourceNode) gives you the whole node (see Utility functions - Neo4j Graph Data Science).

View solution in original post

1 REPLY 1

Hey @marcelix161 ,
yes you can also use the algorithm with nodes that have different properties.
The name property is used here to give a easy-to-read description of the node.
FYI: gds.util.asNode(sourceNode) gives you the whole node (see Utility functions - Neo4j Graph Data Science).