gremlin- AWS海王星文本谓词

时间:2018-05-26 09:29:09

标签: gremlin amazon-neptune

gremlin> g.V().filter{it.get().property('state').value() == 'A*'}

我正在使用AWS Neptune GraphDB。我需要得到状态名称以' A'开头的顶点。你可以帮我解决这些文本谓词,它适用于AWS Neptune gremlin。

{TextConatinsPrefix(),TextPrefix(),Text.contains(),. match(),. enctains(),. startWith()这些没有通过任何组合工作}

3 个答案:

答案 0 :(得分:2)

这可能取决于海王星允许的内容,但是如果海王星允许使用这些类型的Lambda,这里有一些从我的书中得到的例子。

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')

如果你需要的只是startsWith:

的行为,你可以避免使用Lambdas
g.V().hasLabel('airport').
      has('city',between('Dal','Dam')).
      values('city')

为了完整起见,这里是该书及相关材料的URL(所有开源)https://github.com/krlawrence/graph

干杯 开尔文

答案 1 :(得分:0)

现在要在2019年添加另一个答案,以指出在Apache TinkerPop 3.4中引入了新的文本谓词。这些包括startingWith(),EndingWith()和contains()以及它们的逆数notStartingWith()等。任何支持3.4或更高级别的Apache TinkerPop的图形数据库(包括Amazon Neptune)都应提供这些谓词。

希望这可以帮助人们今天找到这个问题,因为原来是2018年的。

欢呼 开尔文

答案 2 :(得分:-1)

谢谢凯文。 我得到了这个答案,它与AWS-Neptune GDB一起正常工作

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

而不是startsWith(),我们可以使用一些类似于文本谓词的java方法。