基于顶点标签的遍历

时间:2017-01-30 08:35:10

标签: java datastax-enterprise gremlin tinkerpop3 datastax-enterprise-graph

我有一个用例来根据搜索名称的顶点标签进行遍历。

例如:我们的系统中有三种标签Org,Asset和Class(都包含名称作为顶点的键)。 如果我们按名称进行搜索并发现它是一个Org顶点,我想要执行一个特定的遍历,以排除对其他顶点的额外遍历。

所以在这种机制中,当我们必须为该顶点找到一个标签时,必须进行全局搜索,这不是一个解决方案。

那么建议使用什么机制(对于跨图的全文/部分文本搜索)?

1 个答案:

答案 0 :(得分:0)

您可以执行类似

的操作
inject('Org','Asset','Class').flatMap{
  g.V().has(it.get(),'name', 'theNameYouArSearchingFor')
}.
choose(label()).
  option('Org',   someTraversalForOrg()).
  option('Asset', someTraversalForAsset()).
  option('Class', someTraversalForClass())

我认为为了使用索引查找,你需要使用has()的三值形式 - 也就是说,你需要指定一个标签。但是,如果要对多个标签使用索引查找,则必须执行三次单独的查找,并将它们与flatMap结合使用,如此处所示。