user2234995
user2234995

Reputation: 285

low speed on cypher query

I use query

"START a=node("+str(node1)+"),
       b =node("+str(node2)+") 
MATCH p=shortestPath(a-[:cooperate*..200]-b) 
RETURN length(p)"

to see the path between a and b. I have many nodes, so when i run the query, sometimes it runs fast and sometimes run slowly.I use neo4j 1.9 community. Can anyone helps?

Upvotes: 0

Views: 75

Answers (2)

OpenCoderX
OpenCoderX

Reputation: 6318

Is the graph changing between the two queries, is it possible these two nodes end up in different places in relation to eachother between the queries? For example if you generate some random data to populate the graph?

Upvotes: 0

Ian Robinson
Ian Robinson

Reputation: 31

Query time is proportional to the amount of the graph searched. Your query allows for very deep searches, up to depth 200. If a. and b. are very close, you'll not search much of the graph, and the query will return very fast. If a. and b. are separated by 200 edges, you will search a very large swathe of graph (perhaps the whole graph?), which for a large graph will be much slower.

Upvotes: 1

Related Questions