2016-06-05 8 views
0

Ich habe Titan 1.0 in der Produktion verwendet. (Cassandra + Solr) Ich frage mich, wie ich AND/OR-Abfragen durch Indizierung des Backends beschleunigen kann. Angenommen, der gemischte Index wurde in den Feldern "user_info" und "vertex_label" definiert. Indizierung Backend als Quelle für die Datenaufbereitung für die folgende Abfrage oder andere ähnliche Wie kann ich Titan sagen zu verwenden:Titan Graph Datenbank: Beschleunigung AND und OR Gremlin Abfragen mit dem Indexing Backends

g.V().or(__.has("user_info",Text.textRegex("job=Teacher")), 
     __.has("vertext_label","user"))) 

ich eingecheckt haben diese Abfrage mit query.force-index = true, um zu sehen, ob es verwendet jede Art von Index oder nicht; aber die geworfene Ausnahme zeigte es nicht.

Antwort

3

Es war answered auf der Aurelius-Mailingliste, aber da Text SO bevorzugt eher als Link, hier ist es wieder soweit:

Split es in zwei Abfragen und verschmilzt das Ergebnis:

result = g.V().has("user_info", Text.textRegex("job=Teacher")).toSet() 
result.addAll(g.V().has("vertex_label", "user")) 

Oder machen Verwendung von Mid-Traversal-Index-Lookups (erfordert TP 3.2):

g.V().has("user_info", Text.textRegex("job=Teacher")).aggregate("x").cap("x"). 
    V().has("vertex_label", "user").aggregate("x").cap("x")