Re: [Neo4j] Djikstra with Cost Cypher Implementation?

2016-09-19 Thread 'Michael Hunger' via Neo4j
Glad it helped :)

On Mon, Sep 19, 2016 at 11:59 PM, Ben Campbell 
wrote:

> Hi Michael,
>
> This looks just the ticket. Having a look through the documentation it
> seems to solve a lot of my Neo4j Cypher woes, wish I had heard of it
> earlier.
>
> Cheers,
>
> Ben
>
>
>
> On Friday, 16 September 2016 16:39:25 UTC+1, Michael Hunger wrote:
>
>> Hi Ben,
>>
>> it is exposed as user defined procedure in the apoc library.
>>
>> You can find it here: https://neo4j-contrib.gi
>> thub.io/neo4j-apoc-procedures/#_graph_algorithms_work_in_progress
>>
>> Install Instructions (just download and drop the jar into
>> NEO4J_HOME/plugins) are in the readme:
>> https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_down
>> load_latest_release_for_the_regular_user
>>
>>
>>
>> apoc.algo.dijkstra(startNode, endNode, 'KNOWS|',
>> 'distance') YIELD path, weight
>>
>> run dijkstra with relationship property name as cost function
>>
>> apoc.algo.dijkstraWithDefaultWeight(startNode, endNode,
>> 'KNOWS|', 'distance', 10) YIELD path, weight
>>
>> run dijkstra with relationship property name as cost function and a
>> default weight if the property does not exist
>>
>>
>>
>>
>> In Neo4j 3.0+ shortest path functions pull in predicates into the
>> evaluation, so something like
>>
>>  WHERE reduce(sum = 0 , x in rels(path) |  sum + x.weight )  < 100
>>
>> should work
>>
>>
>>
>>
>> On Fri, Sep 16, 2016 at 12:47 PM, Ben Campbell 
>> wrote:
>>
>>> Anyone know when the Djikstra/A* with cost implementation is being
>>> implemented in cypher? It appears to have been accessible from the Web API
>>> for a long time, but no easy way to use it when using bolt?
>>>
>>> Is there a reliable workaround? I basically want to call shortestPath
>>> but specify a cost parameter stored on each relationship. I've seen
>>> workarounds on stackoverflow, but these appear to work after obtaining all
>>> the results so become inefficient?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Neo4j" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to neo4j+un...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to neo4j+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Neo4j] Djikstra with Cost Cypher Implementation?

2016-09-19 Thread Ben Campbell
Hi Michael, 

This looks just the ticket. Having a look through the documentation it 
seems to solve a lot of my Neo4j Cypher woes, wish I had heard of it 
earlier.

Cheers,

Ben



On Friday, 16 September 2016 16:39:25 UTC+1, Michael Hunger wrote:

> Hi Ben,
>
> it is exposed as user defined procedure in the apoc library.
>
> You can find it here: 
> https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_graph_algorithms_work_in_progress
>
> Install Instructions (just download and drop the jar into 
> NEO4J_HOME/plugins) are in the readme: 
>
> https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_download_latest_release_for_the_regular_user
>
>
>
> apoc.algo.dijkstra(startNode, endNode, 'KNOWS|', 
> 'distance') YIELD path, weight
>
> run dijkstra with relationship property name as cost function
>
> apoc.algo.dijkstraWithDefaultWeight(startNode, endNode, 
> 'KNOWS|', 'distance', 10) YIELD path, weight
>
> run dijkstra with relationship property name as cost function and a 
> default weight if the property does not exist
>
>
>
>
> In Neo4j 3.0+ shortest path functions pull in predicates into the 
> evaluation, so something like
>
>  WHERE reduce(sum = 0 , x in rels(path) |  sum + x.weight )  < 100 
>
> should work
>
>
>
>
> On Fri, Sep 16, 2016 at 12:47 PM, Ben Campbell  > wrote:
>
>> Anyone know when the Djikstra/A* with cost implementation is being 
>> implemented in cypher? It appears to have been accessible from the Web API 
>> for a long time, but no easy way to use it when using bolt? 
>>
>> Is there a reliable workaround? I basically want to call shortestPath but 
>> specify a cost parameter stored on each relationship. I've seen workarounds 
>> on stackoverflow, but these appear to work after obtaining all the results 
>> so become inefficient? 
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to neo4j+un...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Neo4j] Djikstra with Cost Cypher Implementation?

2016-09-16 Thread 'Michael Hunger' via Neo4j
Hi Ben,

it is exposed as user defined procedure in the apoc library.

You can find it here:
https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_graph_algorithms_work_in_progress

Install Instructions (just download and drop the jar into
NEO4J_HOME/plugins) are in the readme:
https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_download_latest_release_for_the_regular_user



apoc.algo.dijkstra(startNode, endNode, 'KNOWS|',
'distance') YIELD path, weight

run dijkstra with relationship property name as cost function

apoc.algo.dijkstraWithDefaultWeight(startNode, endNode,
'KNOWS|', 'distance', 10) YIELD path, weight

run dijkstra with relationship property name as cost function and a default
weight if the property does not exist




In Neo4j 3.0+ shortest path functions pull in predicates into the
evaluation, so something like

 WHERE reduce(sum = 0 , x in rels(path) |  sum + x.weight )  < 100

should work




On Fri, Sep 16, 2016 at 12:47 PM, Ben Campbell 
wrote:

> Anyone know when the Djikstra/A* with cost implementation is being
> implemented in cypher? It appears to have been accessible from the Web API
> for a long time, but no easy way to use it when using bolt?
>
> Is there a reliable workaround? I basically want to call shortestPath but
> specify a cost parameter stored on each relationship. I've seen workarounds
> on stackoverflow, but these appear to work after obtaining all the results
> so become inefficient?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to neo4j+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.