0
我与约束某个标签20m左右节点:暗号RANGE()函数不会产生正确的结果
// the id is a long
CREATE CONSTRAINT ON (n:LABEL) ASSERT n.id IS UNIQUE;
我试图有效地遍历所有节点的属性添加到所有其中,例如
MATCH (n:LABEL) SET n.prop = <prop_value>
据MH (here,查询优化提示#1) 我曾尝试使用RANGE关键字的利用约束指数的,但我没有得到任何结果,例如
说明//yields the correct result, but scans the whole label, unusable in practice
MATCH (n:LABEL) WHERE n.id >= 10 AND n.id <= 30 RETURN COUNT(*);
//scans the index, but yields 0 !
MATCH (n:LABEL) WHERE n.id IN RANGE(10, 30) RETURN COUNT(*);
// this works
MATCH (n:LABEL) WHERE n.id = 1125985806188545 RETURN n;
// these don't work
MATCH (n:LABEL) WHERE n.id IN RANGE(1125985806188544, 1125985806188546) RETURN n;
MATCH (n:LABEL) WHERE TOINT(n.id) IN RANGE(1125985806188544, 1125985806188546) RETURN n;
新2.2.3社区,Ubuntu的64位
更新: 这的确是一个错误。在做了更多的测试之后,所有的2.2.x版本(最高2.2.8)都存在这个问题,而range()函数只使用了整数。 修正(RangeFunction应使用longs代替ints)仅为merged into 2.2.9 yesterday
你确定'id'属性是一个整数吗? –
不,这是很长的 – Nikos
看看'WHERE TOINT(n.id)IN RANGE(10,30)'是否有效。 –