Gremlin: Qual é uma maneira eficiente de encontrar uma aresta entre dois vértices?

Então, obviamente, uma maneira direta de encontrar uma aresta entre dois vértices é:

graph.traversal().V(outVertex).bothE(edgeLabel).filter(__.otherV().is(inVertex))

Eu sinto issofilter O passo precisará percorrer todas as arestas, tornando-o muito lento para algumas aplicações com muitas arestas.

Outra maneira poderia ser:

traversal = graph.traversal()
                  .V(outVertex)
                  .bothE(edgeLabel)
                  .as("x")
                  .otherV()
                  .is(outVertex) // uses index?
                  .select("x");

Estou assumindo que a segunda abordagem poderia ser muito mais rápida, pois usará o índice de ID, que a tornará mais rápida que a primeira.

Qual deles é mais rápido e mais eficiente (em termos de IO)?

Estou usando o Titan, então você também pode fazer sua resposta específica ao Titan.

Editar

Em termos de tempo, parece que a primeira abordagem é mais rápida (as arestas eram 20k para o vérticeb

gremlin> clock(100000){g.V(b).bothE().filter(otherV().is(a))}
==>0.0016451789999999999
gremlin> clock(100000){g.V(b).bothE().as("x").otherV().is(a).select("x")}
==>0.0018231140399999999

E quanto ao IO?

questionAnswers(2)

yourAnswerToTheQuestion