【问题标题】:gremlin convert string propery to numeric propertygremlin 将字符串属性转换为数字属性
【发布时间】:2020-11-24 17:45:06
【问题描述】:

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

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

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

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

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

如果我使用带有时间戳属性的 Order.desc,它会引发空指针异常,但 Order.decr 工作正常。任何想法? 提前致谢。

【问题讨论】:

    标签: java gremlin tinkerpop3 amazon-neptune


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 2015-01-15
      相关资源
      最近更新 更多