我有这个理论图结构:
(:Car)<-[:LIKES_C]-(:Person)-[:LIKES_B]->(:Bike)
Person
也有其他不包含单词LIKES的关系,例如(:Person)-[:LOVES]-(:Person)
我想编写一个密码查询,该查询将产生连接到Person
具有关系的所有节点,其名称以LIKES开头。
此外,我不能关系的名字更改为LIKES
因为有很多节点与标签Bike
,并Car
根据这个帖子的Neo4j会像查询效率低下:
MATCH (p:Person)-[:LIKES]->(:Car)
它将通过同时进行搜索Cars
,并Bikes
和随后过滤器Cars
有效地提高执行时间。
有没有一种有效的方式来查询LIKES*
关系?
雅各布!有一种方法可以匹配一组关系类型:
match (p:Person)-[:LIKES_C|LIKES_B]->(carOrBike)
在这种情况下,你将能够穿越两:LIKES_C
和:LIKES_B
从关系的:Person
节点。
也可以将UNWIND
一系列的关系名称与apoc.cypher.run
(此处所述)结合使用,以一次查询多个关系。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句