基于顶点标签的遍历
Vertex label based traversal
我有一个用例根据搜索名称的顶点标签进行遍历。
例如:我们的系统中有Org、Asset和Class三种标签(都包含name作为顶点的键)。
如果我们按名称进行搜索并发现它是一个 Org 顶点,我希望执行特定的遍历,以排除对其他顶点的额外遍历。
因此在这种机制中,当我们必须为该顶点找到标签时,必须执行全局搜索,这不是解决方案。
那么建议使用什么机制(对于这个 fulltext/partial 跨图表的文本搜索)?
你可以这样做
inject('Org','Asset','Class').flatMap{
g.V().has(it.get(),'name', 'theNameYouArSearchingFor')
}.
choose(label()).
option('Org', someTraversalForOrg()).
option('Asset', someTraversalForAsset()).
option('Class', someTraversalForClass())
我认为,为了使用索引查找,您需要使用 has() 的 three-value 形式——也就是说,您需要指定一个标签。但是如果你想对多个标签使用索引查找,你必须进行三个单独的查找,并将它们与 flatMap 组合在一起,如此处所示。
我有一个用例根据搜索名称的顶点标签进行遍历。
例如:我们的系统中有Org、Asset和Class三种标签(都包含name作为顶点的键)。 如果我们按名称进行搜索并发现它是一个 Org 顶点,我希望执行特定的遍历,以排除对其他顶点的额外遍历。
因此在这种机制中,当我们必须为该顶点找到标签时,必须执行全局搜索,这不是解决方案。
那么建议使用什么机制(对于这个 fulltext/partial 跨图表的文本搜索)?
你可以这样做
inject('Org','Asset','Class').flatMap{
g.V().has(it.get(),'name', 'theNameYouArSearchingFor')
}.
choose(label()).
option('Org', someTraversalForOrg()).
option('Asset', someTraversalForAsset()).
option('Class', someTraversalForClass())
我认为,为了使用索引查找,您需要使用 has() 的 three-value 形式——也就是说,您需要指定一个标签。但是如果你想对多个标签使用索引查找,你必须进行三个单独的查找,并将它们与 flatMap 组合在一起,如此处所示。