Янусграф Гремлинский запрос - PullRequest
0 голосов
/ 09 сентября 2018

Я относительно новичок в графике.

Нужна помощь для построения эквивалентного запроса gremlin 4 ниже sql.

Выберите a.x1, a.x2, b.y1, b.y2 из таблицы a, таблицы b, где a.x1 = b.y1 и a.x2 = b.y2.

Рассмотрим таблицу как вершины, а x1 x2 y1 y2 - как свойства.

В janusgraph ребра для этих вершин отсутствуют, и метки свойств также различны. Прежде чем получить результат для, необходимо проверить, нет ли у вершин ребер.

1 Ответ

0 голосов
/ 19 сентября 2018

Если ребер нет, то это не очень «графический» запрос, поэтому он может выглядеть немного неуклюжим. Я думаю, что вы должны использовать какую-то форму серединного обхода V(). Я продемонстрировал здесь с небольшими данными:

gremlin> g.addV('a').property('x1',1).property('x2',2).
......1>   addV('b').property('y1',1).property('y2',2).
......2>   addV('b').property('y1',2).property('y2',3).iterate()
gremlin> g.V().hasLabel('a').as('a').
......1>   V().hasLabel('b').as('b').
......2>   where('a', eq('b')).
......3>     by('x1').
......4>     by('y1').
......5>   where('a', eq('b')).
......6>     by('x2').
......7>     by('y2').
......8>   select('a','b').
......9>     by(valueMap(true))
==>[a:[label:a,id:0,x1:[1],x2:[2]],b:[label:b,id:3,y1:[1],y2:[2]]]

Я не уверен, если нет лучшего способа сделать это. В зависимости от того, насколько велик ваш набор данных, это может быть чрезвычайно дорогим обходом и, вероятно, лучшим кандидатом для формы обхода OLAP с использованием Gremlin Spark.

...