something like this

MATCH path=(n)-[*..5]-() 
where id(n) = {node_ids}[0]
AND ALL(n in nodes(path) WHERE id(n) IN {node_ids}) 
AND ALL(r in rels(path) WHERE id(r) IN {rel_ids}) 
return path


> Am 10.03.2015 um 22:40 schrieb Martin Troup <troup...@gmail.com>:
> 
> Thanks for your reply!
> 
> So let me change the problem a little bit. Let say I know all of the nodes 
> and relationships (its IDs) where I want to search for a pattern (for example 
> triangle). Can I define a cypher query with MATCH clause, that will find a 
> triangle (or any graph pattern) between those defined relationships and nodes?
> 
> The problem in general would be to execute a cypher query on a subgraph that 
> I define (by naming all of nodes and relationships IDs).
> 
> So I am looking for something like:
> 
> 
> 
> MATCH any_graph_pattern
> 
> IN (node_id_4, node_id_3, … , relationship_id_1, …)
> 
> 
> 
> If there is such a way to express this with Cypher, is the execution of the 
> query going to be fast enough? If the subgraph where I am looking for the 
> graph pattern is going to be small enough.
> 
> 
> Thanks again for your time!
> Martin
> 
> Dne úterý 10. března 2015 11:31:10 UTC+1 Michael Hunger napsal(a):
> There is no universal way
> 
> this is a quite generic approach but it will be super slow
> 
> MATCH path = (a)-[]-(b)-[]-(c)
> WHERE ANY(r in rels(path) WHERE id(r) = 5)
> RETURN path
> 
> it is better if you can do:
> 
> match path = (a)-[r]-(b)-[]-(c)
> where id(r) = 5
> return path
> union
> match path = (a)-[]-(b)-[r]-(c)
> where id(r) = 5
> return path
> 
> Michael
> 
>> Am 10.03.2015 um 11:24 schrieb Martin Troup <trou...@ <>gmail.com 
>> <http://gmail.com/>>:
>> 
>> Hello everyone,
>> 
>> 
>> 
>> lets say I have a graph pattern (for example (a)-[]-(b)-[]-(c), but it can 
>> be any graph pattern). I want to find this graph pattern with Cypher query. 
>> I know partial information about the exact pattern I am looking for, for 
>> example some of node IDs, or relationship IDs.
>> 
>> Here I will show an example. I am looking for a pattern (a)-[]-(b)-[]-(c) 
>> and I know there is a relationship with ID 5 in it, but I don’t know its 
>> position. So it can be the one between nodes a and b or between b and c.
>> 
>> I am wondering if there is an universal way to express this with Cypher 
>> query, something like 
>> 
>> 
>> 
>> MATCH any_graph_pattern
>> 
>> WHERE relationship_id(5)
>> 
>> 
>> 
>> where I can say which exact relationships or nodes are part of the graph 
>> pattern I am looking for even though I don’t know their position within it.
>> 
>> 
>> 
>> Thanks a lot for a reply!
>> 
>> 
>> -- 
>> 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 <http://googlegroups.com/>.
>> For more options, visit https://groups.google.com/d/optout 
>> <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 
> <mailto:neo4j+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <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.

Reply via email to