Это сценарий: у меня есть число пользователей в вершине Ori-Db. Я хочу получить всех пользователей, которые НЕ являются друзьями определенного пользователя, где друг - это край. Мне нужна команда гремлина. Любой может мне помочь? Спасибо. DiegoGremlin-Traversing Найти все вершины, не связанные с определенной вершиной
1
A
ответ
1
Поскольку вы хотите найти ВСЕ пользователей, которые НЕ являются друзьями с определенным пользователем, я не уверен, что есть очень эффективный способ сделать это. Я использую диаграмму игрушек для демонстрации, но я предполагаю, что все вершины являются пользователями, а все ребра - краями друга. Я хотел бы сделать что-то вроде:
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> l=[g.v(1)] as Set;g.v(1).out.fill(l)
==>v[1]
==>v[2]
==>v[4]
==>v[3]
поэтому получить конкретный пользователь в список l
, а также их друг
gremlin> g.V.except(l)
==>v[6]
==>v[5]
затем найти все остальные, за исключением тех людей. это будут все, кто не был другом конкретного пользователя или того конкретного пользователя. Мне не очень нравится, что вам нужно перебирать g.V
, поскольку он включает в себя линейное сканирование всех друзей, но я не могу придумать более простой способ найти всех НЕ в этом начальном наборе.