इस लेख में हम Sphinx से अपग्रेड करने के बारे में बात करते हैं।
Manticore Search, Sphinx Search 2.3 का एक फोर्क है। जबकि कोड के कई हिस्सों को पुनर्गठित और सुधारा गया है, Sphinx से अपग्रेड करने के लिए कोई तोड़ने वाला परिवर्तन नहीं है जो बड़े प्रयास की आवश्यकता हो। अधिकांश मामलों में, अपग्रेड प्रक्रिया Sphinx के छोटे संस्करणों के बीच अपग्रेड करने के समान है, जो मुख्यतः बाइनरी कार्यान्वयन को प्रतिस्थापित करने में ही सामिल है।
अनुक्रमणिका
Manticore उसी अनुक्रमणिका प्रारूप का उपयोग करता है जैसा कि Sphinx 2.x और Sphinx के साथ बनाए गए अनुक्रमणिका Manticore डेमन द्वारा लोड किए जाएंगे। केवल ऐसी स्थिति जब पुन: अनुक्रमण की आवश्यकता होती है, अगर आप प्री Sphinx 2.2 अनुक्रमणिका का उपयोग करते हैं जो str2ordinal
/str2wordcount
विशेषताएँ उपयोग करती हैं जिन्हें Sphinx 2.2 में अप्रयुक्त कर दिया गया है।
एक सामान्य विचार के रूप में, सबसे अच्छा है पहले परीक्षण करना कि क्या अपग्रेड बिना किसी समस्या के गुजरता है उससे पहले कि प्रोडक्शन इंस्टेंस पर अपग्रेड किया जाए। परीक्षण में क्या देखना है कि क्या अनुक्रमणिका बिना किसी समस्या के लोड होती है और सामान्य क्वेरी निष्पादित होती है जैसा कि अपेक्षित है।
यदि वितरित अनुक्रमणिका दूरस्थ नोड्स के साथ हैं, तो पहले मास्टर को अपग्रेड किया जाना चाहिए। मास्टर और नोड्स के बीच उपयोग किए गए API प्रोटोकॉल में कुछ अपडेट प्राप्त हुए हैं, लेकिन मास्टर अभी भी पुरानी संस्करण का उपयोग करके नोड्स के साथ संवाद कर सकता है।
विन्यास
Manticore में Sphinx 2.3.2 की तुलना में कुछ सेटिंग्स अप्रयुक्त हैं। याद दिलाने के रूप में, 2.3.1 में prefork
और fork
कार्यकारियों के मोड हटा दिए गए हैं। इसके अलावा, Sphinx 2.2 के दौरान ऐसे विकल्प जैसे charset_type
, enable_star
और max_matches
को sphinx.conf से अप्रयुक्त कर दिया गया है (max_matches अब भी एक क्वेरी सेटिंग है, केवल अब वैश्विक नहीं)। उल्लेखनीय है कि crc
शब्दकोश मोड अभी भी Manticore में समर्थित है क्योंकि कुछ मामलों में यह ‘कीवर्ड’ मोड से अधिक फायदेमंद हो सकता है।
क्वेरी करना
क्लाइंट संचार पर, यदि आप SphinxQL का उपयोग कर रहे हैं तो क्लाइंट साइड पर कुछ भी ज़रूरत नहीं है।
यदि आप SphinxAPI का उपयोग कर रहे हैं, तो हमने फोर्क के बाद क्लाइंट लाइब्रेरी में कोई बदलाव नहीं किया है, हालांकि यदि आप पुराने Sphinx संस्करणों से आ रहे हैं, तो आपको नवीनतम API क्लाइंट लाइब्रेरी में अपग्रेड करना चाहिए।
SphinxSE MySQL प्लगइन को कुछ समय से अपडेट नहीं मिला है, लेकिन Manticore में हमने FEDERATED इंजन के लिए समर्थन पेश किया है, जो एक बेहतर विकल्प है क्योंकि FEDERATED सभी MySQL संस्करणों में शामिल है (इसके विपरीत SphinxSE जो केवल MariaDB के साथ वितरित होता है)।
संकलन
Manticore ने autotools से cmake पर स्विच किया। कोड को कंपाइलरों के नए संस्करणों की आवश्यकता होती है। अधिक जानकारी के लिए संकलन डॉक देखें।
Windows पर अपग्रेड करना
Sphinx सेवा को रोकें।
पुराने सभी कार्यान्वयन और पुस्तकालयों को नए के साथ बदलें।
Sphinx द्वारा सेट की गई मौजूदा सेवा बिना किसी समस्या के Manticore शुरू कर सकती है। यदि आप इसे प्रतिस्थापित करना चाहते हैं, तो बस searchd.exe --delete
और searchd.exe --install
चलाएँ।
Linux पैकेजों से अपग्रेड करना
Manticore पैकेज कॉन्फ़िगरेशन फ़ाइल के लिए वही स्थान का उपयोग करता है: /etc/sphinxsearch/sphinx.conf
या /etc/sphinx/sphinx.conf
, वितरण के आधार पर।
क्या बदल गया है वह उपयोगकर्ता जिसके तहत searchd चलता है और उपयोग किए गए फ़ोल्डर। Sphinx एक sphinx
/sphinxsearch
उपयोगकर्ता के तहत चला और /var/lib/sphinxsearch
, /var/log/sphinxsearch
और /var/run/sphinx
फ़ोल्डर का उपयोग किया।
Manticore एक manticore उपयोगकर्ता के तहत चलता है और डिफ़ॉल्ट फ़ोल्डर हैं /var/lib/manticore
, /var/log/manticore
और /var/run/manticore
।
पहले Sphinx सेवा को रोकें, service sphinxsearch stop
या systemctl stop sphinx
, वितरण के आधार पर।
आप सीधे dpkg -i package
या rpm -Uvh package
का उपयोग करके अपग्रेड कर सकते हैं और मौजूदा sphinx.conf को बनाए रखने का विकल्प चुन सकते हैं।
चूंकि Manticore सेवा /var/run/manticore
का उपयोग PID फ़ाइल की उपस्थिति की जांच करने के लिए करती है, sphinx.conf में एकमात्र परिवर्तन pid_file
के स्थान को /var/run/manticore/searchd.pid
में बदलना है। हम sphinx.conf में PID फ़ाइल के स्थान को बदलने की सिफारिश करते हैं बजाय इसके कि manticore.service फ़ाइल को संपादित करें क्योंकि भविष्य के अपग्रेड सेवा फ़ाइल में किए गए परिवर्तनों को ओवरराइट कर सकते हैं और फिर से पैचिंग की आवश्यकता हो सकती है।
अगले चरण में है मौजूदा Sphinx फ़ोल्डरों पर manticore
उपयोगकर्ता को अनुमति सेट करना।
इस बिंदु पर आप service manticore start
या systemctl start manticore
के साथ Manticore सेवा शुरू कर सकते हैं।
यदि आपको Sphinx से अपग्रेड करने में मदद की आवश्यकता है, तो आधिकारिक स्लैक चैनल या फोरम पर पूछने में संकोच न करें।