一个完整的图中,寻找某一点开始的所有序列上符合条件的点
发布于 6 年前 作者 wuchengbin 2412 次浏览 来自 问答

假如数据从 ID=1开始,寻找ID=1的节点开始的所有路径上符合条件的节点 我使用了如下查询语句 match(n:Label1{ID:1})-[*]->(m:Label1) where m符合条件(其中的某一个属性 大于、小于或者不等于某个值) return m 这条路径大约有2600个点构成,其中大部分点不符合条件,我使用上述查询语句,速度非常非常慢

求教别的方法!谢谢

5 回复

目前你这个cql查询的是目标节点满足where条件,通过all()对路径上所有节点进行过滤吧 match p=(a)-[*]-(b) where all(n in nodes§ where n.属性判断) return p

查询速度的话,如果关系长度你不做限制直接用*且这个图联通程度很好的话,相当于是整个数据库的全遍历了。。

all(n in nodes§ where n.属性判断) return p 那个 nodes后面是什么

@zhoujieren64 非常感谢,假如这条路径上,所有node 都有一个字段能标示是某一条路径的,是不是就只会遍历这条路径而不会遍历整个数据库了

@wuchengbin nodes后面是括号p,表示路径中的所有节点。论坛自动转成特殊符号了

@wuchengbin 遍历路径的时候都会先查出来然后再过滤掉吧?这个不太确定,可以profile试试

回到顶部