Как параметризовать фильтр сортировки, используя 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);
Другие вопросы по тегам