En muchos casos, la estructura del dominio se puede aprovechar para mejorar el rendimiento. Digamos que usted sabe que, en general, sus entidades A
tienen menos relaciones x
en comparación con el número de relaciones y
en las entidades B
. Luego, puede atravesar dos pasos desde el nodo A y ver dónde se muestra el nodo B
, y filtrar los nodos C
de esta manera. Aquí hay un código para este enfoque:
Set<Node> found = new HashSet<Node>();
for (Relationship firstRel : a1.getRelationships(Reltypes.x, Direction.OUTGOING))
{
Node cNode = firstRel.getEndNode();
for (Relationship secondRel : cNode.getRelationships(Reltypes.y, Direction.INCOMING))
{
Node bNode = secondRel.getStartNode();
if (bNode.equals(b1))
{
found.add(cNode);
break;
}
}
}
Otra forma sería comenzar dos hilos que exploran las relaciones de ambos lados.
Un tercer enfoque sería crear un índice especializado que ayudaría a responder este tipo de consultas, lo que obviamente dañaría el rendimiento de las inserciones.
quiero conseguir los vértices del objeto GremlinePipeline, ¿Me podría decir cómo achive esto en Java Api. A continuación está el código que estoy usando: GremlinPipeline pipeline = new GremlinPipeline (vert) .out ("LIVES_IN_CITY"). In ("LIVES_IN_CITY"). Filter (nueva PipeFunction() {cálculo booleano público (Vertex v) {return v. getProperty ("nombre"). equals (city);}}). back (2) .out ("LIVES_IN_CITY"); – RCS