0

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

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

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

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

+0

您能否提供一个示例图 - 理想情况下用Gremlin代码生成图 - 并解释遍历的预期结果? –

回答

0

你可以做类似

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

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