2

Я использую DSE-5.0.5 и DSE-studio и хочу написать запрос в грамм-графе в графе ноутбука. Есть ли запрос пересечения, который может дать мне общие элементы между двумя наборами, возвращенными через обход в tinkerpop3.Запрос Intersect для tinkerpop3 gremlin

Я написал этот вопрос:.....

ГВ() имеет ('имя', 'Person1') Oute ('ПРИНАДЛЕЖИТ') ОБР() в Е ('HAS') OUTV() .as ('х'). INE (​​'HAS'). OUTV(). а ('у'). в Е ('HAS'). OUTV(). ('имеет имя', 'app1'). выберите ('х'). в Е ('HAS'). OUTV(). hasLabel ('Орг'). а ('р'). повтор (выход()). до (Oute(). hasLabel ('IS')) .as ('a1'). выберите ('у'). НСИ ('HAS'). OUTV(). hasLabel ('Class'). Repeat (INE (​​'IS'). DeDup(). otherV()) .intil (inE(). haslabel ('HAS')). as ('a2'). select ('a1', 'a2')

Так что я хочу пересечение множеств a1 и a2. Или есть эффективный способ написать это, что может дать мне это?

ответ

3

Было бы полезно иметь образец график, но я думаю, что это должно работать:

g.V().has("name","Person1"). 
    out("BELONGS").in("HAS").dedup().as("x"). 
    in("HAS").filter(__.in("HAS").has("name","App1")).store("y"). 
    select("x").dedup().in("HAS").hasLabel("Org"). 
    repeat(out()).until(outE().hasLabel("IS")).store("a").cap("y"). 
    unfold().in("HAS").hasLabel("Class"). 
    repeat(inE("IS").dedup().otherV()).until(inE("HAS")). 
    where(within("a")) 
+0

спасибо .. это было полезно :) –