2014-07-06 74 views
1

我使用TitanGraphDB + Cassandra.I我開始泰坦如下edges.create()函數使得如果重複多次調用

cd titan-cassandra-0.3.1 
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties 

我有可以使用通信以泰坦+卡桑德拉一個Rexster殼以上。

cd rexster-console-2.3.0 
bin/rexster-console.sh 

我試圖用泰坦圖DB.I的網絡拓撲模型要泰坦圖表DB從我的Python program.I正在使用的燈泡包該程序。 我創建三種類型的頂點 的 - 開關 - 端口 - 設備

我用下面的功能,如果它不存在,以創造獨特的頂點。

self.g.vertices.index.get_unique("dpid", dpid_str) 

    self.g.vertices.index.get_unique("port_id", port_id_str) 

    self.g.vertices.index.get_unique("dl_addr", dl_addr_str) 

我在相關頂點之間創建邊如下。

self.g.edges.create(switch_vertex,"out",port_vertex) 

但是,如果這個函數被調用兩次,它是創造邊緣的副本已經present.Is有一個功能類似於get_or_create()的邊緣,使我能夠避免重複?

回答

2

通常,圖形允許在頂點之間重複邊,因爲重複邊的定義是不明確的且是特定於應用程序的。

例如,基於其標籤,方向或屬性組合的邊是否是重複的?

然而,泰坦0.5引入Multiplicity.SIMPLE約束,可用於一對頂點的之間限定唯一邊緣。

見的Matthias泰坦0.5公告:

這個新功能還沒有記載,但泰坦隊是在更新文檔泰坦0.5的過程,因此將很快記錄在案。

觀看類型定義概述頁面更新:

也可參閱基數約束部分: