0

У меня есть прецедент для обхода, основанный на метке вершины для искомого имени.Проверка на основе меток на вершине

Например: В нашей системе есть три типа меток Org, Asset и Class (все, содержащие имя как ключи вершин). И если мы выполняем поиск по имени и обнаруживаем, что это вершина Орг, я хочу, чтобы какой-то обход выполнялся, чтобы исключить дополнительный обход другим вершинам.

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

Итак, какой механизм предлагается вместо этого (для этого полнотекстового/частичного поиска текста по графику)?

+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()) 

Я думаю, что для того, чтобы использовать индексный поиск, Вы должны использовать форму в три-значение имеет() - то есть, вы должны указать метка. Но если вы хотите использовать индексный поиск для нескольких меток, вам нужно сделать три отдельных поиска и объединить их с flatMap, как показано здесь.

Смежные вопросы