我正在使用TitanGraphDB + Cassandra。我正在按照以下方式启动Titan
cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
我有一个Rexster shell,我可以使用它与上面的Titan + Cassandra进行交流。
cd rexster-console-2.3.0
bin/rexster-console.sh
我正在尝试使用Titan Graph DB建模网络拓扑。我想从我的python程序中编写Titan Graph DB。我正在使用灯泡包。 我创建了三种类型的顶点 - 开关 - 港口 - 设备
如果它不存在,我使用以下函数来创建唯一的顶点。
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)
但是,如果调用此函数两次,则会创建已存在的边的副本。是否存在类似于边的get_or_create()的函数,以便我可以避免重复。?
答案 0 :(得分:2)
通常,图表允许顶点之间出现重复边缘,因为重复边缘的定义不明确且特定于应用程序。
例如,边缘是否基于其标签,方向或某些属性组合而重复?
然而, Titan 0.5 引入了Multiplicity.SIMPLE
约束,使您可以在一对顶点之间定义唯一边。
请参阅Matthias的Titan 0.5公告:
这个新功能尚未记录,但Titan团队正在更新Titan 0.5的文档,因此很快就会记录下来。
观看类型定义概述页面了解更新:
另请参阅基数约束部分: