Manticore Search 3 पहली बार सूची संगतता में एक टूटन लाता है और यह 2.x के साथ बनाए गए मौजूदा सूचियों को लोड नहीं कर सकता। इसका मतलब है कि सूचियों को 3.x में खोज सेवा को अपग्रेड करने से पहले तैयार होना चाहिए।
नए प्रारूप में सूचियों के लिए, दो विकल्प हैं:
- सूचियों को पूरी तरह से फिर से बनाएं। यदि आपकी सूचियाँ बहुत बड़ी नहीं हैं और समय-समय पर नहीं हैं, तो यह आसान रास्ता है।
- परिवर्तक उपकरण का उपयोग करें जो किसी भी प्रकार (सादा, परकोलट, समय-समय पर) की सूची को Manticore 2 / Sphinx 2 प्रारूप से नए प्रारूप में स्वचालित रूप से परिवर्तित कर सकता है।
माइग्रेशन शुरू करने से पहले कई बातों का ध्यान रखना आवश्यक है:
- दस्तावेज़ आईडी अब सकारात्मक हस्ताक्षरित बड़े पूर्णांक हैं, जो पहले असाइन किए गए बड़े पूर्णांक थे।
- सूची में किल-लिस्ट का उपयोग करने की गति में काफी बदलाव आया है।
- समय-समय पर सूचियों को परिवर्तित करने से पहले, RAM खंड खाली होना चाहिए। यदि उसमें डेटा है, तो इसे FLUSH RAMCHUNK का उपयोग करके डिस्क पर लिखा जाना चाहिए। यह ऑपरेशन मौजूदा 2.x पर किया जाना चाहिए, अपग्रेड करने से पहले।
- v3 सूचियों के लिए स्ट्रिंग / json विशेषताओं को 4GB तक सीमित नहीं करता है। अतीत में कुछ मामलों में सूचियों को डेटा के फिटिंग की अनुमति देने के लिए बहुत से खंडों में साझा करना पड़ा। v3 में, ऐसी सूची को एकल या अधिक सीमित संख्या में खंडों में घटित किया जा सकता है (यदि यह बहु-धागा खोज को बनाए रखना चाहा जाए)। 4GB प्रतिबंध RT सूचियों पर भी लागू होता है। इसका मतलब था कि यदि 4GB थ्रेशोल्ड तक पहुंचा जाए, तो OPTIMIZE RT खंडों को एकल में घटित नहीं कर सकता। इससे प्रभावित RT को परिवर्तित करने के बाद, नए सूची के लिए, OPTIMIZE को एक-खंड RT सूची प्राप्त करने के लिए लागू किया जा सकता है।
Manticore Search 3 के साथ एक सहायक उपकरण है जो सूचियों को 2.x प्रारूप से 3.x प्रारूप में परिवर्तित कर सकता है। यह उपकरण एक अलग पैकेज में प्रदान किया जाता है जिसे manticore-converter
कहा जाता है। यह पैकेज मौजूदा Manticore स्थापना में किसी भी तरह से हस्तक्षेप या प्रभाव नहीं डालता है, इसलिए इसे समानांतर में स्थापित किया जा सकता है।
index_converter
उपकरण के साथ आप सूचियों के 3.x संस्करण बना सकते हैं और जब सभी तैयार हो जाएं तो आप Manticore पैकेज को अपग्रेड करना शुरू कर सकते हैं।
यदि आपके पास एक ही सर्वर है:
manticore-converter
पैकेज स्थापित करें- सूचियों के नए संस्करण बनाने के लिए
index_converter
का उपयोग करें जो मौजूदा डेटा फ़ोल्डर से अलग फ़ोल्डर में हो ( –output-dir विकल्प का उपयोग करके) - मौजूदा Manticore को रोकें, 3.0 में अपग्रेड करें, नए सूचियों को डेटा फ़ोल्डर में स्थानांतरित करें, और Manticore प्रारंभ करें।
न्यूनतम डाउनटाइम प्राप्त करने के लिए, आप 2.x सूचियों, कॉन्फ़िगरेशन (आपको सूचियों, लॉग और विभिन्न पोर्टों के लिए यहाँ पथ संपादित करने की आवश्यकता होगी) और बाइनरी को एक अलग स्थान पर कॉपी कर सकते हैं और इसे अलग पोर्ट पर प्रारंभ कर सकते हैं और अपने एप्लिकेशन को इसके लिए इंगित कर सकते हैं।
जब अपग्रेड 3.0 पर किया जाता है और नया डेमन प्रारंभ होता है, तो आप फिर से एप्लिकेशन को सामान्य पोर्ट पर इंगित कर सकते हैं। यदि सब कुछ ठीक है, तो 2.x कॉपी को रोकें और स्थान मुक्त करने के लिए फ़ाइलों को हटा दें।
यदि आपके पास एक अतिरिक्त बॉक्स (जैसे एक परीक्षण या स्टेजिंग सर्वर) है,तो आप यहाँ पहले सूचियों का अपग्रेड कर सकते हैं और यहां तक कि Manticore 3 स्थापित कर सकते हैं ताकि कई परीक्षण किए जा सकें और यदि सब कुछ सही है तो नए सूची फ़ाइलों को प्रोडक्शन सर्वर पर कॉपी करें।
यदि आपके पास कई सर्वर हैं जिन्हें उत्पादन से निकाला जा सकता है, तो इसे एक-एक करके करें और प्रत्येक पर अपग्रेड करें। वितरित सेटअप के लिए, 2.x खोज सेवा 3.x नोड्स के साथ मास्टर के रूप में काम कर सकती है, इसलिए आप पहले डेटा नोड पर अपग्रेड कर सकते हैं और अंत में मास्टर नोड पर।
परिवर्तक उपकरण एक बार में एक सूची को माइग्रेट कर सकता है ( --index
का उपयोग करते हुए), एक दिए गए कॉन्फ़िगरेशन फ़ाइल से सभी सूचियों ( --all
का उपयोग करते हुए) या एक फ़ोल्डर से सभी सूचियों ( --path
द्वारा परिभाषित) को। चूंकि परिवर्तक मौजूदा सूची के एक नए संस्करण को बनाता है, इसलिए आवश्यक अतिरिक्त स्थान पर विचार करना आवश्यक है। यदि स्थान एक समस्या है, तो सूचियों को एक-एक करके परिवर्तित किया जाना चाहिए।
परिवर्तक का उपयोग करने का सबसे आसान तरीका (यदि आप किल-लिस्ट का उपयोग नहीं करते हैं) बस सभी को बदलना है:
$ index_converter --config /home/myuser/sphinx.conf --all
डिफ़ॉल्ट रूप से v3 सूचियाँ उसी फ़ोल्डर में लिखी जाती हैं और पुरानी सूचियाँ उनके फ़ाइल नामों में ‘.old’ के साथ कॉपी की जाती हैं। नए सूचियों को –output-dir विकल्प का उपयोग करके एक अलग फ़ोल्डर में भी सहेजा जा सकता है।
$ index_converter --config /home/myuser/sphinx.conf --index myrtindex --output-dir /new/location
कृपया ध्यान दें कि हिटलिस्ट फ़ाइल (.spp) साधारणतया नए संस्करण में स्थानांतरित होती है (क्योंकि इसमें कोई बदलाव नहीं आया) और इसे पुरानी संस्करण के बैकअप में शामिल नहीं किया गया है। एक बार जब संस्करण 3 का परीक्षण पूरा हो और कोई समस्या न हो, तो पुरानी सूची संस्करणों का बैकअप हटाया जा सकता है।
डेल्टा सूचियों के मामले में, नए विकल्प killlist_target को परिवर्तित करने से पहले कॉन्फ़िगरेशन में सेट किया जाना चाहिए। परिवर्तक लक्ष्यों को –killlist-target के साथ भी सेट कर सकता है:
$ index_converter --config /home/myuser/sphinx.conf --index deltaindex --killlist-target mainindex:kl
तीसरा विकल्प है डेल्टा सूची को परिवर्तित करना, इसे लोड करना, ALTER KILLLIST_TARGET का उपयोग करके लक्ष्यों को सेट करना और लक्ष्यों को लागू करने के लिए (फिर से) लोड करना।
यदि आपके पास कोई समस्या, प्रश्न या टिप्पणी है तो बेझिझक हमसे संपर्क करें:
- twitter पर
- [email protected] पर ई-मेल भेजकर
- हमारे फोरम पर पोस्ट करके
- हमारे कम्युनिटी स्लैक में हमारे साथ चैट करके
- हमारे GitHub पर बग ट्रैकर के माध्यम से