当前我有一个以时间戳作为字符串属性的图
g.V().order().by('timestamp', '10')
这会导致排序时出现问题,因为字符串排序不同于数字排序。
String sorting : 1, 10, 2
Numeric sorting : 1, 2, 10
是否有任何方法可以将gremlin中的所有时间戳属性转换为Long(Numeric(,或者如何查询gremlin以使用数字排序。打开以获取建议。
如果我使用带有timestamp属性的Order.desc,它将抛出空指针异常,但Order.decr工作正常。知道吗?提前谢谢。
如果您想将所有字符串转换为整数,最简单的方法是在应用程序中按照以下行执行:
- 使用Gremlin获取属性
- 在应用程序中将其转换为整数
- 使用Gremlin将值写回并替换前一个值(请确保使用Cardinality.single关键字(
另一种方法是将图形导出到CSV,更新CSV并重新加载。根据图形的大小,这可能是更好的选择。
另一种方法是使用内联代码(lambdas(,但如果你使用的是AmazonNeptune,这不是一种选择,因为它们是不允许的。
至于Oder.decc和Order.desc,除非您的Neptune引擎版本或Gremlin客户端版本在相当长的一段时间内处于后台,否则两者都应该工作。