2016-07-06 3 views
1

Unten ist der Scala-Code, den ich verwende, um die Daten in Titan einzufügen.Erhalte doppelte Einträge beim Einfügen von Daten in 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))+"');") 
    } 
} 

Die Herausforderung, vor der wir stehen, ist jedes Mal, wenn wir mehrere Einträge des einen Knotens erhalten. http://i.stack.imgur.com/cQ7wN.png

Können Sie bitte helfen und beraten die beste Möglichkeit, einzigartige Datensätze in Titan db einzufügen?

Antwort

1

Ich bin nicht sicher, wie Sie dies in Scala tun würden, aber eine gute Möglichkeit, sicherzustellen, dass Scheitelpunkte gemäß einer Eigenschaft eindeutig sind, besteht darin, diese Eigenschaft zu indizieren.

Wie beschrieben here können Sie eine Eigenschaft auf Ihrem Vertex myId erstellen und dem Schema mitteilen, dass es eindeutig ist. Auf diese Weise können Sie schnell nach dieser ID suchen und, noch wichtiger, lassen Sie Titan sicherstellen, dass der Vertex durch diese Eigenschaft eindeutig ist. Zum Beispiel:

//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(); 

Der obige Code wird Titan sagen, dass Sie eine Eigenschaft namens myId, die eindeutig sein sollte.

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

Titan wird scheitern und warnen Sie der Duplikate: die folgenden auf diese Weise, wenn Sie jemals tun.

Verwandte Themen