Ich verwende Titan v0.3.1 und möchte eine Liste der Schlüssel sehen, die ich bereits über createKeyIndex
indiziert habe. Wie kann ich das machen?Wie kann ich eine Liste indizierter Schlüssel in Titan erhalten?
Antwort
Wie Sie selbst herausgefunden haben, können Sie hierfür die Blueprints getIndexedKeys(Vertex.class)
Methode verwenden, aber das Titan-System hat viel mehr zu bieten als createKeyIndex
. Je länger Sie arbeiten mit Titan desto mehr werden Sie wollen über die Art Maker-System lernen:
https://github.com/thinkaurelius/titan/wiki/Type-Definition-Overview
In diesem Fall sind die Typen zurück von getIndexedKeys
möglicherweise nicht genug sein. Hier einige Gremlin Sie weitere Informationen zu erhalten:
gremlin> g = GraphOfTheGodsFactory.create('/tmp/titan')
13/08/28 16:28:23 INFO diskstorage.Backend: Configuring index [search] based on:
...
13/08/28 16:28:25 INFO cluster.metadata: [Astaroth/Asteroth] [titan] update_mapping [vertex] (dynamic)
==>titangraph[local:/tmp/titan]
gremlin> import static com.thinkaurelius.titan.graphdb.types.system.SystemKey.*
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
==>import com.tinkerpop.gremlin.pipes.*
==>import com.tinkerpop.gremlin.pipes.filter.*
==>import com.tinkerpop.gremlin.pipes.sideeffect.*
==>import com.tinkerpop.gremlin.pipes.transform.*
...
==>import static com.thinkaurelius.titan.graphdb.types.system.SystemKey.*
gremlin> import com.thinkaurelius.titan.graphdb.types.*
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
==>import com.tinkerpop.gremlin.pipes.*
==>import com.tinkerpop.gremlin.pipes.filter.*
==>import com.tinkerpop.gremlin.pipes.sideeffect.*
==>import com.tinkerpop.gremlin.pipes.transform.*
...
==>import com.thinkaurelius.titan.graphdb.types.*
gremlin> g.newTransaction().getVertices(TypeClass, TitanTypeClass.KEY).collect{[it.name,it.dataType]}
==>[reason, class java.lang.String]
==>[name, class java.lang.String]
==>[type, class java.lang.String]
==>[time, class java.lang.Integer]
==>[place, class com.thinkaurelius.titan.core.attribute.Geoshape]
==>[age, class java.lang.Integer]
Sie könnten auf der Titan-API für weitere Informationen über die TitanKey
aussehen soll, die von diesem Aufruf an getVertices
(als Typen gespeichert werden als Eckpunkte) zurückgegeben wird:
http://thinkaurelius.github.io/titan/javadoc/0.3.2/com/thinkaurelius/titan/core/TitanKey.html
Im Gremlin Schale kann man KeyIndexableGraphgetIndexedKeys
Funktion Riss verwenden:
gremlin> g.getIndexedKeys(Vertex.class)
==>my_key_1
==>my_key_2
==>my_key_3
(my_key_1
, my_key_2
und my_key_3
sind die 3 indexiert Scheitels keys)
Um die Indizes für Schlüssel greifen auf Kanten, verwenden Sie Edge.class
anstelle von Vertex.class
oben.
Das ist großartig, danke @ stephen-mallette. Sie haben recht mit den anderen Typen von Titan: Ich habe bereits die ElasticSearch-Integration mit Titan für erweiterte Indizes und Suchfunktionen untersucht. – bcm360