Сопоставление с образцом в гремлине - PullRequest
1 голос
/ 06 августа 2020

У меня есть график с ярлыками пользователей, и я хочу искать пользователей по имени, это текущая реализация

wg.addV("users").property("firstname", "user1").property("lastname", "test").next();

теперь мне нужно искать пользователей, имя или фамилия которых начинается с букв в качестве типа пользователя в поиске.

если пользователь набрал «u», мне нужно получить пользователей, чье имя или фамилия начинается с «u». если пользователь ввел «использовать», мне нужно получить пользователей, чье имя или фамилия начинается с «использовать».

и мне нужно отображать в соответствующем порядке и ограничить до 10 результатов.

это - это текущая реализация.

g.V().or(has("users", "firstname", between("use", "use" + "z")),
                    has("users", "lastname", between("use", "use" + "z")))
            .limit(10))

с этим подходом я могу работать с пользователями, но это не актуально и не включает пользователей, которые соответствуют точному запросу и упорядочены по имени. Заранее спасибо.

1 Ответ

1 голос
/ 06 августа 2020

Начиная с выпуска TinkerPop 3.4.0, Gremlin также поддерживает простые текстовые предикаты

В этом случае вы должны использовать startingWith.

g.V().or(
    has('users', 'firstname', startingWith('use')),
    has('users', 'lastname', startingWith('use'))
  ).limit(10)

пример: https://gremlify.com/sdgnafh8md

...