Как параметризовать фильтр сортировки, используя 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) не отсортированы должным образом. Когда я заменяю fieldName в коде gremlin на "it.username", результаты упорядочиваются по имени пользователя.
1 ответ
Решение
Похоже, метод sort является частью groovy, а не gremlin. Вместо этого метод сортировки может быть использован для сортировки записей:
@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);