मैंने पाइथन में पूर्ण-पाठ-खोज करने के लिए प्रत्यय पेड़ लागू किया है, और यह वास्तव में अच्छी तरह से काम कर रहा है। लेकिन एक समस्या है: अनुक्रमित पाठ बहुत बड़ा हो सकता है, इसलिए हम रैम में पूरी संरचना नहीं कर पाएंगे।डेटा संरचना को स्टोर/पुनर्प्राप्त करें
छवि: शब्द BANANAS
के लिए प्रत्यय पेड़ (मेरे परिदृश्य में, एक पेड़ 100000 गुना बड़ी कल्पना)।
तो, इसके बारे में थोड़ा सा शोध करने के बाद मुझे pickle
मॉड्यूल मिला, "लोडिंग" और "डंपिंग" ऑब्जेक्ट्स के लिए एक महान पायथन मॉड्यूल/फ़ाइलों में से, और अनुमान लगाया? यह मेरी डेटा संरचना के साथ अद्भुत काम करता है।
तो, लंबी कहानी कम करने के लिए: डिस्क पर/इस संरचना को स्टोर करने और पुनर्प्राप्त करने की सबसे अच्छी रणनीति क्या होगी? मेरा मतलब है, एक समाधान में प्रत्येक नोड को स्टोर करने के लिए एक समाधान हो सकता है और इसे जब भी आवश्यक हो डिस्क से लोड कर सकता है, लेकिन ऐसा करने के लिए सबसे अच्छा विचार नहीं है (बहुत अधिक डिस्क एक्सेस)।
पाद-टिप्पणी: हालांकि मैं python के रूप में इस सवाल का टैग किया है, प्रोग्रामिंग भाषा सवाल का महत्वपूर्ण हिस्सा नहीं है, डिस्क भंडारण/पुन: प्राप्त करने की रणनीति वास्तव में मुख्य बिंदु है।
एक महत्वपूर्ण सवाल यह है कि क्या आप इस संरचना को * एक बार * बनाना चाहते हैं और इसे कई बार उपयोग करना चाहते हैं, या आप इसे बनाना चाहते हैं और * अद्यतनों को अनुमति दें *। –
@ ग्रेगहेविल: मूल रूप से, संरचना बनाने के लिए केवल एक बड़ा टेक्स्ट-प्रोसेसिंग, और उसके बाद बस इसका उपयोग करें। – juliomalegria
रास्ते से - सीपीकल का उपयोग करें - बहुत तेज़ अचार। जेसन का उपयोग क्यों नहीं कर रहे हैं और इसके बजाय एक कामकाजी डीबी के खिलाफ डिस्क काम बनाम काम कर रहे हैं (मैं एक विशेषज्ञ नहीं हूं यह विषय आपको बताता है कि कौन सा- लेकिन नोस्क्ल इस तरह के स्केनेरियोस के लिए समाधान ज्ञात है - मैं जितना बेहतर मानता हूं डिस्क फाइलें) – alonisser