2016-07-27 63 views
3

我創建了一個Titan圖形(由Dynamodb支持);我使用Titan 1.0.0並運行Gremlin-Server 3(在TinkerPop3上)。Gremlin-Server添加具有多個屬性的頂點(Titan 1.0.0)

我想添加一個頂點到我的圖形中,在一行中有一個標籤和多個屬性。我可以添加帶有標籤和單個屬性的頂點,並且在創建頂點後,我可以添加多個屬性,但似乎我無法一次完成。

爲了測試我在gremlin shell中運行命令,但最終用例通過REST API(它已經工作正常)與它進行交互。

作爲一個說明,我在每次交易之後回滾,所以我有一個乾淨的石板。

這裏是我怎樣,我開始我的會議:

gremlin> graph = TitanFactory.open('conf/gremlin-server/dynamodb.properties') 
==>standardtitangraph[com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager:[127.0.0.1]] 
gremlin> g = graph.traversal() 
==>graphtraversalsource[standardtitangraph[com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager:[127.0.0.1]], standard] 

我可以創建一個帶標籤的頂點和一個屬性是這樣的:

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01') 
==>vp[date_of_birth->1949-01-01] 
gremlin> g.V().hasLabel('date_of_birth').has('date_of_birth','1949-01-01').valueMap() 
==>[date_of_birth:[1949-01-01]] 

我還可以創建一個頂點然後追加許多屬性,然後在我剛剛創建的頂點處開始遍歷:

gremlin> v1 = graph.addVertex('date_of_birth') 
==>v[409608296] 
gremlin> g.V(v1).property('date_of_birth','1949-01-01').property('year_of_birth',1949).property('date_of_birth','1949-01-01').property('day_of_birth',1).property('age',67).property('month_of_birth',1) 
==>v[409608296] 
gremlin> g.V(v1).valueMap() 
==>[day_of_birth:[1], date_of_birth:[1949-01-01], month_of_birth:[1], age:[67], year_of_birth:[1949]] 

This是一切都很好,但我試圖避免做出2個電話來實現這個結果,所以我想創建具有所有這些屬性的頂點立即。從本質上講,我希望能夠像做以下,但它不能超過1 .property()

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01').property('year_of_birth',1949).property('date_of_birth','1949-01-01').property('day_of_birth',1).property('age',67).property('month_of_birth',1) 
No signature of method: com.thinkaurelius.titan.graphdb.relations.SimpleTitanProperty.property() is applicable for argument types: (java.lang.String, java.lang.String) values: [date_of_birth, 1949-01-01] 

我用1 .property()具有多個屬性(用自己能所有其他語法的變化也跟着嘗試想),但似乎只趕上第一個:

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01','year_of_birth',1949,'date_of_birth','1949-01-01','day_of_birth',1,'age',67,'month_of_birth',1) 
gremlin> g.V().hasLabel('date_of_birth').has('date_of_birth','1949-01-01').valueMap() 
==>[date_of_birth:[1949-01-01]] 

我已經通過所有的文檔看,我可以得到我的手從所有來源我能找到,我無法找到任何東西這個「全部一次」的方法。有沒有人以前做過或知道如何做到這一點?

提前致謝!

回答

5

如泰坦文檔中的Chapter 3 Getting Started所述,GraphOfTheGodsFactory.java源代碼顯示瞭如何添加帶有標籤和多個屬性的頂點。

saturn = graph.addVertex(T.label, "titan", "name", "saturn", "age", 10000); 

方法addVertex(Object... keyValues)最終來自被Apache TinkerPop有關定義圖形界面。 Titan 1.0.0使用TinkerPop 3.0.1,您可以在TinkerPop文檔的addVertex步驟(以及許多其他步驟)中找到更多documentation

+0

啊!就是這樣! T的一個東西是躲避我的東西。現在你指出了它,它正好在該文檔的中間* palm => face *。感謝您的快速回答,爲我節省了很多挫折! – mlee1100

相關問題