2013-08-28 49 views

回答

4

正如你自己找到的,你可以使用Blueprints getIndexedKeys(Vertex.class)方法,但是泰坦類型系統比createKeyIndex提供更多提供。你與泰坦的工作時間越長,你就越想了解該類型設備系統:

https://github.com/thinkaurelius/titan/wiki/Type-Definition-Overview

在這種情況下,通過getIndexedKeys返回的類型可能是不夠的。下面是一些精怪讓你更多的細節:

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] 

你可能想看看泰坦API用於對從該調用返回getVerticesTitanKey更多的信息(如類型存儲爲頂點):

http://thinkaurelius.github.io/titan/javadoc/0.3.2/com/thinkaurelius/titan/core/TitanKey.html

+0

這太好了,謝謝@ stephen-mallette。對於泰坦的其他類型你是對的:我已經在探索與Titan的ElasticSearch集成以進行更高級的索引和搜索。 – bcm360

5

在小鬼的外殼,你可以使用藍圖KeyIndexableGraphgetIndexedKeys功能:

gremlin> g.getIndexedKeys(Vertex.class) 
==>my_key_1 
==>my_key_2 
==>my_key_3 

my_key_1my_key_2my_key_3是3個索引頂點鍵)

要在搶索引鍵邊緣,使用Edge.class代替上面的Vertex.class