java - gremlin 将字符串属性转换为数字属性
问题描述
目前我有一个带有时间戳作为字符串属性的图表
g.V().order().by('timestamp', '10')
这会导致排序时出现问题,因为字符串排序与数字排序不同。
String sorting : 1, 10, 2
Numeric sorting : 1, 2, 10
有没有办法将所有时间戳属性转换为 gremlin 中的 Long(Numeric) 或如何查询 gremlin 以使用数字排序。开放供建议。
如果我将 Order.desc 与时间戳属性一起使用,则会引发空指针异常,但 Order.decr 工作正常。任何想法?提前致谢。
解决方案
如果要将所有字符串转换为整数,最简单的方法是在应用程序中按照以下方式进行:
- 使用 Gremlin 获取属性
- 在您的应用程序中将其转换为整数
- 使用 Gremlin 将值写回并替换之前的值(务必使用 Cardinality.single 关键字)。
另一种方法是将您的图表导出为 CSV,更新 CSV 并重新加载它。根据图表的大小,这可能是一个更好的选择。
另一种方法是使用内联代码 (lambdas),但如果您使用的是 Amazon Neptune,那么这不是一个选项,因为它们是不允许的。
至于 Oder.decr 和 Order.desc 两者都应该可以工作,除非您的 Neptune 引擎版本或 Gremlin Client 版本已经落后了很长一段时间。
推荐阅读
- html - 如何动态更改导航栏链接的css内容
- php - 在 MySQL 中使用 FULLTEXT 是否需要我在 PHP 中使用不同的语法来检索结果?
- vba - Block If without End If 在障碍期权计算期间
- r - mdply(或类似)一个函数而不是 for 循环
- javascript - 如何在 React 的数组中更新对象中键的值?
- vb.net - 使用文本框从 datagridview 过滤名称和用户名
- c++ - 如何更正我的多项式 GCD 以获得两个高阶多项式之间的正确答案?(在 C 或 C++ 中)
- spring - 从数据库加载 Blob
- python - 熊猫数据框多个标准
- asp.net-core - 从 ASP.NET Core 2.2 迁移到 3.1 和错误 404