让我们假设我们有这个简单的模式:Neo4J/Cypher:是否有可能在where子句中过滤路径的长度?
p=(a)-[r]-(b)
,其中节点A和B都有自己的特性已经在WHERE子句中(设置如:电影,a.title =“黑客帝国”和B:电影)。 我想在WHERE子句中添加另一个条件样
LEGHT(p) =2 OR LENGTH(p)>6
(不正确的语法,我知道)
据我所知,这是不可能性指定路径的长度在语法[r * min..max]的MATCH子句中,但不包括我正在寻找的情况。
任何帮助,将不胜感激=)
我已经试过用简单的电影数据库Neo4J提供的方法。虽然它只有有限数量的节点/关系,但它陷入了“正在执行查询...”。我在寻找更坚实的东西。 – fgiacc 2015-03-02 16:54:52
您应该对源节点和目标节点施加严格的限制。如果你一般这样做,比如'MATCH(a) - [b] - >(c)',那么你的查询必须匹配**整个数据库**中的每一个可能的路径。这个数字会非常高,并且您的查询需要很长时间。 – FrobberOfBits 2015-03-02 17:12:39
是的,这应该工作。这里的问题在于,严格限制将取决于用户,我不能预见它是否足够聪明,因此=) – fgiacc 2015-03-02 17:24:28