cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Issue with Neo4j GDS 1.4.1 K-Spanning tree

Jean
Node Link

Hi all,
I'm following Noe4j's online document at 6.5.1. Minimum Weight Spanning Tree - 6.5. Path finding algorithms , it seems that the Cypher to query K-Spanning tree doesn't work:

MATCH (n:Place)
WITH n.id AS Place, n.kminst AS Partition, count(*) AS count
WHERE count = 3
RETURN Place, Partition

Should it be modifyed to the following?

MATCH (n:Place)
WITH n.kminst AS Partition, count(*) AS count
WHERE count = 3
MATCH (n:Place)
WHERE n.kminst=Partition
RETURN n

I'v downloaded the example transport data of the book <Graph Algorithms> from data · master · examples / Graph Algorithms · GitLab, and loaded it into a graph database, all path algorithms of the package is O.K. , except the K-Spanning tree, can't figure out how to make it work.

MATCH (source:Place {id: "Amsterdam"})
CALL gds.alpha.spanningTree.kmin.write({
     nodeProjection:'Place',
     relationshipProjection:{
     EROAD:{
         type:'EROAD',
         properties:'distance',
         orientation:'NATURAL'
     }},
     startNodeId:id(source),
     relationshipWeightProperty:'distance',
     writeProperty: 'kminst',
     k: 3
})
YIELD createMillis, computeMillis, writeMillis, effectiveNodeCount
RETURN createMillis, computeMillis, writeMillis, effectiveNodeCount

MATCH (n:Place)
WITH n.kminst AS partition, count(*) AS count
RETURN partition, count

There's no partition gets the count value 3 (which is the value of parameter k), so don't know how to extract the result with a Cypher like this:

MATCH (n:Place)
WITH n.kminst AS Partition, count(*) AS count
WHERE count = 3
MATCH (n:Place)
WHERE n.kminst=Partition
RETURN n

Any idea is appreciated.

1 REPLY 1

Jean
Node Link

O.K., get the key that the Prim algorithm only applies to UNDIRECTED graph, should be mentioned in the algorithm document.