In vielen Fällen kann die Struktur der Domäne genutzt werden, um die Leistung zu verbessern. Nehmen wir an, Sie wissen, dass Ihre A
Entitäten im Allgemeinen weniger x
Beziehungen haben als die y
Beziehungen auf den B
Entitäten. Dann können Sie zwei Schritte vom A-Knoten aus durchlaufen und sehen, wo der Knoten B
erscheint, und die Knoten C
auf diese Weise herausfiltern. Hier ist ein Code für diesen Ansatz:
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;
}
}
}
Eine andere Möglichkeit, zwei Threads zu starten wäre, die die Beziehungen von beiden Seiten scannen.
Ein dritter Ansatz wäre es, einen spezialisierten Index zu erstellen, mit dem diese Art von Abfragen beantwortet werden könnte, was die Leistung der Einfügung natürlich beeinträchtigen würde.
Ich mag die Eckpunkte aus dem GremlinePipeline-Objekt erhalten, können Sie mir bitte sagen, wie diese Api in Java achive. Unten ist der Code, den ich benutze: GremlinPipeline pipeline = neue GremlinPipeline (vert) .out ("LIVES_IN_CITY"). In ("LIVES_IN_CITY"). Filter (neue PipeFunction() {public Boole'sche Berechnung (Vertex v) {return v. getProperty ("name"). equals (Stadt);}}). zurück (2) .out ("LIVES_IN_CITY"); – RCS