如何使用 tinkerpop gremlin / frames 参数化排序过滤器?
How to parameterize the sort filter using tinkerpop gremlin / frames?
我想使用给定的字段名对结果进行排序:
@GremlinGroovy(value = "it.in('HAS_USER').sort{fieldName}._()[skip..limit]")
public Iterable<TPUser> getUsersInOrder(@GremlinParam("fieldName") String fieldName, @GremlinParam("skip") int skip, @GremlinParam("limit") int limit);
不幸的是,getUsersInOrder("it.username", 0, 5) 的结果未按预期排序。当我用 "it.username" 替换 gremlin 代码中的 fieldName 时,结果按用户名排序。
看起来 sort 方法是 groovy 的一部分,而不是 gremlin。相反,order 方法可用于对条目进行排序:
@GremlinGroovy(value = "it.in('HAS_USER').order({ it.b.getProperty(fieldName) <=> it.a.getProperty(fieldName) })[skip..limit]")
public Iterable<TPUser> getUsersInOrder(@GremlinParam("fieldName") String fieldName, @GremlinParam("skip") int skip, @GremlinParam("limit") int limit);
我想使用给定的字段名对结果进行排序:
@GremlinGroovy(value = "it.in('HAS_USER').sort{fieldName}._()[skip..limit]")
public Iterable<TPUser> getUsersInOrder(@GremlinParam("fieldName") String fieldName, @GremlinParam("skip") int skip, @GremlinParam("limit") int limit);
不幸的是,getUsersInOrder("it.username", 0, 5) 的结果未按预期排序。当我用 "it.username" 替换 gremlin 代码中的 fieldName 时,结果按用户名排序。
看起来 sort 方法是 groovy 的一部分,而不是 gremlin。相反,order 方法可用于对条目进行排序:
@GremlinGroovy(value = "it.in('HAS_USER').order({ it.b.getProperty(fieldName) <=> it.a.getProperty(fieldName) })[skip..limit]")
public Iterable<TPUser> getUsersInOrder(@GremlinParam("fieldName") String fieldName, @GremlinParam("skip") int skip, @GremlinParam("limit") int limit);