gremlin - текстовые предикаты AWS Neptune - PullRequest
0 голосов
/ 26 мая 2018
gremlin> g.V().filter{it.get().property('state').value() == 'A*'}

Я использую AWS Neptune GraphDB.Мне нужно получить вершины с именами состояний, начинающимися с 'A'.Не могли бы вы помочь мне с этими текстовыми предикатами, которые работают на AWS Neptune gremlin.

{TextConatinsPrefix (), TextPrefix (), Text.contains (), .matches (), .contains (), .startWith() они не работали ни при каких комбинациях}

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Спасибо, Кельвин.Я получил этот ответ, который отлично работает с AWS-Neptune GDB

gremlin> g.V().values('state').filter{(''+it).startsWith('A')}

вместо startWith (), мы можем использовать некоторые методы java, похожие на текстовые предикаты.

0 голосов
/ 26 мая 2018

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

g.V().hasLabel('airport').
      filter{it.get().property('desc').value().contains('Dallas')}

// Using a filter to search using a regular expression
g.V().has('airport','type','airport').
      filter{it.get().property('city').
        value ==~/Dallas|Austin/}.values('code')

// A regular expression to find any airport with a city 
//name that begins with "Dal"

g.V().has('airport','type','airport').
    filter{it.get().property('city').value()==~/^Dal\w*/}.values('city')

Вы можете избегать лямбд, если все, что вам нужно, это поведениеиз начала с:

g.V().hasLabel('airport').
      has('city',between('Dal','Dam')).
      values('city')

Для полноты вот URL-адрес книги и связанных материалов (все с открытым исходным кодом) https://github.com/krlawrence/graph

Cheers Kelvin

...