【发布时间】:2015-11-05 10:09:14
【问题描述】:
我有两个节点属于两个标签之一:类或方法,在这里的两个图像中用黄色圈起来。用于查找 Method 标记节点的密码查询在所有情况下都能正常工作。然而,很奇怪的是,当使用属性选择某些节点时,返回 Class 标记节点的密码查询会给出空结果。
在上图中,可以看到查询Match (n:Class{Cycles:"52888"}) return n红色,没有给出任何东西,尽管这样的节点存在,如绿色包围。需要注意的是,在不使用属性的情况下查询 Class 节点运行良好。
当类似的查询完全正确地为 Method 标记的节点工作时,即使使用属性来选择某些节点,问题变得更加混乱,如下图所示。
谁能解释为什么 Cypher 查询与 Class 标记的节点表现不同,以及问题的解决方案是什么。
【问题讨论】:
-
“Cycles”属性值是字符串吗?
-
是的,它是一个字符串@Luanne
-
匹配(c:Class)返回不同的键(c)返回什么?
-
它返回以下 Luanne - [周期,占总时间的百分比,占累计时间的百分比,调用+递归,类的名称]
-
我也猜到
Cycles是一个长字符串而不是字符串。如果是这种情况,那么对字符串的匹配将失败并且什么也不返回。我注意到您在不严格要求的属性名称上使用了反引号。 property name 是否可能包含一些奇怪的东西? IE。如果属性名称是“Cycles”(带有额外的空格),那么查询的失败自然是有意义的。正如 Michael 所建议的,作为字符串的数值属性会引发其他可能的问题,例如空格填充。