(c:Customer)-[:ordered]->(p:Product)-[:category]->(:Category)
Now, say that there are 2: c-[:ordered]->(:Product { name: "pants", quantity: 10}) c-[:ordered]->(:Product { name: "shirt", quantity: 5}) Now, say that if I only want to cross the category relationship if the p.quantity > 6 In the most basic way, I would do: (c:Customer)-[:ordered]->(p:Product)-[:category]->(cat:Category) WHERE p.quantity > 6 However, I figured that maybe neo4j would (non-optimally) traverse the entire path _then_ filter where on top of the path. So what I did was: MATCH (c:Customer)-[:ordered]->(p:Product) WHERE p.quantity > 6 WITH p MATCH p-[:category]->(cat:Category) This, I figured, would then allow neo4j to cross out to all the product nodes, as I would need them anyway in order to filter out the ones which have a quantity of less than 6. Now... finally to my question. The following URL: http://docs.neo4j.org/chunked/stable/query-match.html states that: WHERE defines the MATCH patterns in more detail. The predicates are part of the pattern description, not a filter applied after the matching is done. So, my question is, if the predicates (specifically p.quantity > 6) are part of the pattern description, and _not_ applied _after_ matching (therefore applied before or during), then cutting the query with the WITHs would be a moot point So, I would think that (c:Customer)-[:ordered]->(p:Product)-[:category]->(cat:Category) WHERE p.quantity > 6 would be sufficient, , as neo4j _would not_ actually traverse to cat, since it would apply the filter during the match process. However, in practice, I notice that using WITH is actually faster. Is there any possible reason for this? It may be necessary for me to show my query exactly, I also have the profile data for the query, which I am currently analyzing -- 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/groups/opt_out.