Reputation: 2366
I have a Neo4j instance running. I have relationships which are weighted. One such example is representing all places in the world, and having a distance between each place.
Now it seems easy to create a relationship between two nodes, A and B:
Relationship relationship = A.createRelationshipTo(B, Relations.Knows );
But what about actual strength of the relationship. Theres been a suggestion on here as :
create a-[:`KNOWS_0.34`]->b
This works, but isn't a particularly great solution, particularly if you wanted to calculate a shortest distance dependent on the weights.
Is there anyway of doing this and storing the relationship int or float?
Upvotes: 4
Views: 8598
Reputation: 5001
It's a good approach to use a weight property on your relationship!
Take a look at Graph Algorithm examples in the Neo4j tutorial pages. It describes various ways to find shortest paths using weighted relationships e.g. using Dijkstra or A* algorithms. A great dijkstra example can be found here.
Upvotes: 3
Reputation: 2366
I wasn't aware of this, but seems you can set additional properties when creating a Relationship
:
Relationship relAB = createRelationship( nodeA, nodeC, "length", 2d );
Upvotes: 4