Neo4j可变深度不工作
我正在尝试为两种情况构建密码查询:Neo4j可变深度不工作,neo4j,cypher,nodes,relationship,Neo4j,Cypher,Nodes,Relationship,我正在尝试为两种情况构建密码查询: 深度超过2米的试验 深度超过2米的特殊试验 如图中所示,测试1、2、3在深度上的相关性大于2。我运行的密码是: MATCH p=()<-[r:TEST_FOR*..10]-() RETURN p LIMIT 50 MATCH p=()这里的问题是方向。上述4个查询中的每一个都使用定向可变长度匹配模式,这意味着所遍历的每个关系都必须使用指示的方向(传入)。但是,一旦您点击:Tests节点,这将不起作用,因为它们只与:Disease节点有传出关系 简单的解
MATCH p=()<-[r:TEST_FOR*..10]-() RETURN p LIMIT 50
MATCH p=()这里的问题是方向。上述4个查询中的每一个都使用定向可变长度匹配模式,这意味着所遍历的每个关系都必须使用指示的方向(传入)。但是,一旦您点击:Tests节点,这将不起作用,因为它们只与:Disease节点有传出关系
简单的解决方法是省略方向,因此匹配模式将遍历:TEST_以查找关系,而不考虑方向。例如:
MATCH p=()-[r:TEST_FOR*2..5]-() RETURN p LIMIT 50
请注意,原始查询的原因是
MATCH p=()<-[r:TEST_FOR*..10]-() RETURN p LIMIT 50
MATCH p=()谢谢@InverseFalcon,这解决了我的问题1,但问题2呢?,在testname='碱性磷酸酶(ALP)'的问题3和问题4中???@DaVinci007问题3和问题4我看对了。尝试使用t.testname~='.*碱性磷酸酶(ALP)。*'
如果有效,则错误是匹配字符串与属性内容不匹配。(在这种情况下可能是空格错误)“MATCH p=(d:Disease)Ok刚刚删除了指向疾病的传入关系箭头,它成功了!!
MATCH p=()-[r:TEST_FOR*2..5]-() RETURN p LIMIT 50
MATCH p=()<-[r:TEST_FOR*..10]-() RETURN p LIMIT 50
MATCH p=()<-[r:TEST_FOR]-() RETURN p LIMIT 50