我的查询是:
match (n :l1)-[r]-(n2 :l2) where n.id=10 OR n2.id=5 return n,n2,r
我希望这会返回包含n
或n2
且包含给定标签的所有元素。
我在n :li(id)
和n2 :l2(id)
都有索引,但是在个人资料中它表示它正在制作一个NodeByLabelScan
,数千个db命中...为什么?
AND
的同一查询确实使用了索引。
UNION
的解决方案执行方式更好,因为它分别执行每个查询,然后合并结果而不点击数据库。数以百万计的db命中数以千计:)
答案 0 :(得分:1)
我想这是使用UNION
的好候选人:
MATCH (n:l1{id:10})-[r]-(n2)
RETURN n, r, n2
UNION
MATCH (n:l2{id:5})-[r]-(n2)
RETURN n, r, n2