gremlin将字符串属性转换为数字属性



当前我有一个以时间戳作为字符串属性的图

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工作正常。知道吗?提前谢谢。

如果您想将所有字符串转换为整数,最简单的方法是在应用程序中按照以下行执行:

  1. 使用Gremlin获取属性
  2. 在应用程序中将其转换为整数
  3. 使用Gremlin将值写回并替换前一个值(请确保使用Cardinality.single关键字(

另一种方法是将图形导出到CSV,更新CSV并重新加载。根据图形的大小,这可能是更好的选择。

另一种方法是使用内联代码(lambdas(,但如果你使用的是AmazonNeptune,这不是一种选择,因为它们是不允许的。

至于Oder.decc和Order.desc,除非您的Neptune引擎版本或Gremlin客户端版本在相当长的一段时间内处于后台,否则两者都应该工作。

最新更新