Dans de nombreux cas, la structure du domaine peut être exploitée pour améliorer les performances. Disons que vous savez qu'en général, vos entités A
ont moins de relations x
par rapport au nombre de relations y
sur les entités B
. Ensuite, vous pouvez parcourir deux étapes à partir du nœud A et voir où se trouve le nœud B
, puis filtrer les nœuds C
de cette façon. Voici un code pour cette approche:
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;
}
}
}
Une autre façon serait de commencer à deux fils qui analyse les relations de part et d'autre.
Une troisième approche consisterait à créer un index spécialisé qui aiderait à répondre à ce type de requêtes, ce qui nuirait manifestement aux performances d'insertion.
Je veux obtenir les sommets de l'objet GremlinePipeline, Pouvez-vous s'il vous plaît me dire comment cela en Java achive Api. Voici le code que j'utilise: GremlinPipeline pipeline = new GremlinPipeline (vert) .out ("LIVES_IN_CITY"). In ("LIVES_IN_CITY"). Filter (nouveau PipeFunction() {public Booléen calcul (Vertex v) {return v. getProperty ("name"). est égal à (city);}}). back (2) .out ("LIVES_IN_CITY"); – RCS