nosql - टाइटन डाटाबेस में कोने आईडी को कैसे अधिलेखित किया जाए?




neo4j titan (2)

मैं एक ढांचे का उपयोग कर रहा हूं जो ऑब्जेक्ट Node उत्पन्न करता है और पहले से ही एक आईडी निर्दिष्ट की है। अब उन्हें टाइटन के कोने में रूपांतरित करने की आवश्यकता होती है, साथ ही ढांचे में नियंत्रित आईडी ( node.id साथ node.id )

public long addNode(Node node) {    
   TitanVertex vertex = (TitanVertex) g.addVertex(null);
   g.commit();

   vertex.setProperty(ID, node.id);
   vertex.setProperty(TYPE, node.type);
   vertex.setProperty(VERSION, node.version);
   vertex.setProperty(TIME, node.time);
   vertex.setProperty(DATA, node.data);
   ...

त्रुटि:

java.lang.IllegalArgumentException: Name is reserved: id

लेकिन ऐसा लगता है कि यह अनुमति नहीं दे रहा है। क्या मुझे एक सेकेंडरी आईडी की नकल करने के लिए कुछ नकली प्रॉपर्टी का इस्तेमाल करना चाहिए? क्या टाइटन के पास ऐसा करने का कोई तरीका है?

धन्यवाद!


बहुत कम ग्राफ डेटाबेस वास्तव में आप तत्व पहचानकर्ता सेट करने की अनुमति देते हैं। वे सभी अपनी आईडी सिस्टम रखते हैं कि क्या आप नेओ 4 जे, ओरिएंट डीबी, टाइटन आदि का उपयोग कर रहे हैं। टिंकरग्राफ वास्तव में एकमात्र ब्ल्यूप्रिंट कार्यान्वयन है जो आईडी असाइनमेंट की अनुमति देता है।

यदि आप अपना आईडी रखना चाहते हैं, तो आपको इसे किसी और चीज़ के नाम से बदलना चाहिए। "आईडी" के बजाय, शायद आप "आईआईडी" का उपयोग कर सकते हैं प्रोग्रामिंग परिप्रेक्ष्य से, चीजों को और अधिक पारदर्शी बनाने के लिए, आप आईडीग्राफ आवरण का उपयोग करने पर विचार कर सकते हैं, जो आपको कुछ ऐसा करने की अनुमति देगा:

gremlin> base = TitanFactory.open('/tmp/titan-berkley')
==>titangraph[local:/tmp/titan-berkley]
gremlin> g = new IdGraph(base, true, false)            
==>idgraph[titangraph[local:/tmp/titan-berkley]]
gremlin> g.addVertex(45)  
==>v[45]
gremlin> g.v(45)
==>v[45]

आप देख सकते हैं कि IdGraph इसे प्रकट IdGraph अनुमति देता है जैसे कि आप तत्व आईडी को ही निर्दिष्ट कर रहे हैं पर्दे के पीछे यह वास्तव में केवल महत्वपूर्ण सूचकांकों का उपयोग कर रहा है


@ स्टीफन, गैलेमलिन टर्मिनल के बारे में कह सकते हैं, लेकिन टाइटन जावा एपीआई के माध्यम से यह कोशिश की और यह काम नहीं किया। आईडी ग्राफ़ में कोने बनाने के दौरान आईडी को पास करने के बाद भी, डिफ़ॉल्ट आईडी नोड्स को सौंपे गए थे।