2016-07-06 51 views
1

下面是我用於將數據插入到titan中的Scala代碼。在titandb中插入數據時獲取重複條目

for(n <- nodes){ 
    stringNodes = stringNodes.concat("v"+n.letter+" = graph.addVertex('"+n.label+"');") 
    for(a <- n.attributes){ 
    stringNodes = stringNodes.concat("v"+n.letter+".property('"+a.name+"','"+row(row.fieldIndex(a.name))+"');") 
    } 
} 

我們面臨的挑戰是我們每次獲得一個節點的多個條目。 http://i.stack.imgur.com/cQ7wN.png

能否請你幫忙,並建議在泰坦數據庫中插入獨特記錄的最佳方式?

回答

1

我不確定你將如何在Scala中做到這一點,但根據某些屬性確保頂點是唯一的一種好方法是將該屬性索引爲唯一。

如上所述here您可以在頂點myId上創建一個屬性,並告訴模式它是唯一的。這樣你就可以通過這個ID快速查找,更重要的是讓Titan確保該屬性唯一的頂點。例如:

//Open up managment interface 
graph = TitanFactory.open(config); 
mgmt = graph.openManagement(); 

//Create the property key 
propKey = management.makePropertyKey("myId").dataType(String.class)).make(); 

//Tell Titan it should be unique 
mgmt.buildIndex("byMyIdUnique", Vertex.class).addKey(propKey).unique().buildCompositeIndex(); 
mgmt.commit(); 

上面的代碼會告訴泰坦,你有一個名爲myId屬性,它應該是唯一的。這樣,如果你曾經做過以下事情:

graph.addVertex().property("myId", 1); 
graph.addVertex().property("myId", 1); 

泰坦將失敗並警告你重複。