我的数据库由两个节点组(标签)x和y组成。 y个节点还具有其他标签(颜色:蓝色,红色,绿色等)。
我的查询是:
MATCH (n1:y)-->(n2:x)<--(n3:blue) RETURN n2.idx
该配置文件显示n3的展开,而没有任何引用,因为它是蓝色的,导致12,000个数据库命中,推出了12,000行。下一步是对蓝色进行过滤,从而导致将近24,000个DB命中返回了1,036行。
我对idx
和idy
的唯一性都有约束,并且每种颜色都有索引。
我尝试在y节点上使用color属性,将查询更改为以下内容,但配置文件中没有任何差异。
MATCH (n1:y)-->(n2:x)<--(n3:y {color:blue}) RETURN n2.idx
我在using index n3:blue(idy)
语句之前尝试过RETURN
,但这给了我一个语法错误。我仍在尝试decypher
(对双关语)。
我该如何避免上述阶段db hit hit膨胀,而仅从蓝色节点开始?
答案 0 :(得分:0)
您可以使用http://www.linksneeded.com/This开始在n3
上使用标签扫描。
MATCH (n1:y)-->(n2:x)<--(n3:blue)
USING SCAN n3:blue
RETURN n2.idx
此外,如果:x节点可以与:y节点或:blue节点具有多个关系,则这可能会产生重复项。如果只希望与:y节点有连接的:x节点,则可以尝试以下方法:
MATCH (n2:x)<--(n3:blue)
USING SCAN n3:blue
WHERE (:y)-->(n2)
WITH DISTINCT n2
RETURN n2.idx