GREMLIN для Scala: как сделать ребро между двумя вершинами и соединить ребра между двумя вершинами в одном запросе - PullRequest
0 голосов
/ 06 марта 2019

Я использую эту библиотеку для gremlin scala https://github.com/mpollmeier/gremlin-scala#getting-started.

В данном случае есть три вершины (A, B, C). Две вершины A, B уже связаны ребрами с именем «IS».

Теперь я хочу поместить ребро "IS" между A, B и соединить A с C ребром с именем "IS" в отдельном запросе gremlin scala. Ранее я написал два разных запроса gremlin scala: один для отбрасывания ребра, а другой для добавления ребра, но я хочу объединить эти два запроса в один.

1 Ответ

0 голосов
/ 07 марта 2019

Предполагая, что все перечисленные ниже функции поддерживаются этой библиотекой, вы должны иметь возможность выполнить следующее, которое отбросит связь между V (1) и V (2) при добавлении ребра между V (1) и V (6).

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

Для вашего случая: A = 1, B = 2, C = 6

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin>  g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.E()
==>e[7][1-knows->2]
==>e[8][1-knows->4]
==>e[9][1-created->3]
==>e[10][4-created->5]
==>e[11][4-created->3]
==>e[12][6-created->3]
gremlin> g.V(1).as('A').bothE().where(otherV().hasId(2)).as('drop').addE('IS').from('A').to(V(6)).select('drop').drop()
gremlin> g.E()
==>e[8][1-knows->4]
==>e[9][1-created->3]
==>e[10][4-created->5]
==>e[11][4-created->3]
==>e[12][6-created->3]
==>e[13][1-IS->6]
...