2014-02-17 3 views
0

Я использую Titan Graph Database (выпуск 0.4.1). У меня есть ориентированный граф, и я пытаюсь найти соседей узла. Я использую GremlinPipeLine со следующим кодом:GremlinPipeline возвращает повторяющиеся узлы, когда я использую .bot

GremlinPipeline<String, Vertex> pipe = new GremlinPipeline<String, Vertex>(vertex).both("similar"); 

Я полагаю, что это вызвано тем, что если у меня есть следующий список ребро ориентированного графа

1 32 
32 1 

выше функции возврата узла 32 два раза. Есть ли способ отфильтровать это с помощью GremlinPipeline или я должен сделать это вручную?

P.S. любой другой способ найти соседей узла также принят.

ответ

0

Вы можете использовать dedup карту, чтобы сделать своего рода Gremlin DISTINCT -как эквивалент запроса:

GremlinPipeline<String, Vertex> pipe = new GremlinPipeline<String, Vertex>(vertex).both("similar").dedup(new PipeFunction<Vertex,String>() { 
    public String compute(Vertex vertex) { 
    return vertex.id; 
    } 
}).back(1); 

Последние назад возвращает вас тот же вид результата вы должны иметь с both вызова.

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