Hi

We currently have many rather lengthy, complex Cypher queries running on 
2.1.x. I wanted to see the potential performance improvements in 2.2's 
Cypher query planner, so I imported our DB to 2.2 and ran the queries on it.

However, I immediately noticed that I was only getting a subset of the 
results I'd gotten on 2.1.x, and in some cases no results. After some 
investigation, it turns out it has to do with different behaviour (and 
syntax) of shortestPath in 2.2.

The offending lines in the query are:

match objectives-[:target_region]->regions, 
oregions<-[:target_region]-oobjectives
match path=shortestPath(regions-[:has_child*..4]-oregions)

Regions are a simple parent > child hierarchy, where a parent region is 
linked to their child nodes (also regions) via a [:has_child] relationship. 
objectives and oobjectives are identified and matched earlier in the query. 
The basic premise is to find objectives belonging to two different 
companies which target either the same regions, or regions that are 
connected by virtue of being ancestors / descendants of each other.

In 2.1.x, this returns 4 results for this particular set of criteria. Two 
are direct region matches (Brazil and Australia match each other directly 
on both sides) and two are descendants (Australia matches two objectives in 
New South Whales)

In 2.2, it returns only two - the descendants results (Australia <-> NSW)

After some hair pulling, I wondered if perhaps the reason 2.2 wasn't 
finding the direct matches was that *..4 didn't specify a minimum length. 
This turned out to be the case, as replacing the relevant line with:

match path=shortestPath(regions-[:has_child*0..4]-oregions)

produces the same results as 2.1.x.

I thought great, so this is how 2.2 does it, let me back-port it into the 
app so the switchover will be easier when 2.2 is released. However, 
attempting to replace this line in 2.1.x gives me this error:

"shortestPath(...) does not support a minimal length"

So my question is - is this intended? Did I miss some release notes with 
breaking changes for 2.2?

Many thanks

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to