2016-12-22 3 views
2

Я новичок в dse graph, я хочу создать запрос gremlin, который дает мне список всех вершин, связанных с указанной вершиной, но из этого списка Я хочу удалить этот список которые связаны циклическими.Как удалить список циклических вершин из списка внешних вершин

e.g. 

A --> B 
A --> C 
A --> D 
B --> A 

Если я выше отношений, то я хочу ниже списка вершин в результате

[C,D] 

В и не должно быть в приведенном выше список, как это имеет циклическое отношение

У меня есть ниже два отдельных запрос, чтобы найти все связанные вершины и найти циклическую вершину

g.V().has('id','id').as('mainV').outE('Prerequisite').inV(); 

g.V().has('id','id').as('mainV').out().out().cyclicPath().path().unfold().dedup(); 

Не могли бы вы, пожалуйста, lp мне найти точный запрос для достижения моего требования.

+0

Если B не должен быть в списке, как это имеет циклическую связь с А, то почему A в списке? Он имеет циклическое отношение с B. –

+0

Это была моя ошибка, я исправил его, результатом будет только C и D – user3812269

ответ

0

Итак, вы в основном хотите отфильтровать вершины, которые имеют in и край out для конкретной вершины.

Это ваш график выборки:

gremlin> g = TinkerGraph.open().traversal() 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.addV().property(id, "A").as("a"). 
......1> addV().property(id, "B").as("b"). 
......2> addV().property(id, "C").as("c"). 
......3> addV().property(id, "D").as("d"). 
......4> addE("link").from("a").to("b"). 
......5> addE("link").from("a").to("c"). 
......6> addE("link").from("a").to("d"). 
......7> addE("link").from("b").to("a").iterate() 

И это обход вы ищете:

gremlin> g.V().as("a").not(out().out().where(eq("a"))).not(__.in().in().where(eq("a"))) 
==>v[C] 
==>v[D] 
0

Похоже, вы хотите использовать SimplePath. См. Здесь для документации - http://tinkerpop.apache.org/docs/current/reference/#simplepath-step

+0

Спасибо за ответ, но это также дает циклическую вершину. Я хочу удалить вершину из списка, которая будет связана циклически с указанной вершиной – user3812269

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