2013-08-28 10 views

Antwort

4

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

+0

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

5

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.