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

gremlin convert string propery to numeric property

目前我有一个时间戳为字符串的图表 属性

g.V().order().by('timestamp', '10')

这会导致排序时出现问题,因为字符串排序不同于数字排序。

String sorting  : 1, 10, 2
Numeric sorting : 1, 2, 10

有没有办法在 gremlin 中将所有时间戳属性转换为 Long(Numeric) 或如何查询 gremlin 以使用数字排序。欢迎提出建议。

如果我将 Order.desc 与时间戳 属性 一起使用,它会抛出空指针异常,但 Order.decr 工作正常。任何的想法? 提前致谢。

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

  1. 使用 Gremlin
  2. 获取 属性
  3. 在您的应用程序中将其转换为整数
  4. 使用 Gremlin 写回值并替换之前的值(一定要使用 Cardinality.single 关键字)。

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

另一种方法是使用内联代码 (lambdas),但如果您使用的是 Amazon Neptune,那不是一种选择,因为它们是不允许的。

至于 Oder.decr 和 Order.desc 两者都应该可以工作,除非您的 Neptune 引擎版本或 Gremlin 客户端版本落后很长一段时间。