neo4j没有加入多个标签

时间:2019-01-01 04:00:15

标签: neo4j

我的数据库由两个节点组(标签)x和y组成。 y个节点还具有其他标签(颜色:蓝色,红色,绿色等)。

我的查询是:
MATCH (n1:y)-->(n2:x)<--(n3:blue) RETURN n2.idx

该配置文件显示n3的展开,而没有任何引用,因为它是蓝色的,导致12,000个数据库命中,推出了12,000行。下一步是对蓝色进行过滤,从而导致将近24,000个DB命中返回了1,036行。

我对idxidy的唯一性都有约束,并且每种颜色都有索引。

我尝试在y节点上使用color属性,将查询更改为以下内容,但配置文件中没有任何差异。
MATCH (n1:y)-->(n2:x)<--(n3:y {color:blue}) RETURN n2.idx

我在using index n3:blue(idy)语句之前尝试过RETURN,但这给了我一个语法错误。我仍在尝试decypher(对双关语)。 我该如何避免上述阶段db hit hit膨胀,而仅从蓝色节点开始?

1 个答案:

答案 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