एक्सटेंशन:CirrusSearch
![]() प्रकाशन की स्थिति: स्थिर |
|
---|---|
कार्यान्वयन | खोज, API , हुक |
विवरण | Elasticsearch की मदद से मीडियाविकि को खोजने देता है |
लेखक | Nik Everett, Chad Horohoe, Erik Bernhardson |
नवीनतम संस्करण | निरंतर अद्यतन |
संगतता नीति | मीडियाविकि के साथ प्रकाशित स्नैपशॉट्स। Master में पीछे की तरफ से संगतता नहीं है। |
MediaWiki | >= 1.41.0 |
Composer | mediawiki/cirrussearch |
लाइसेंस | GNU साधारण सार्वजनिक लाइसेंस 2.0 या अधिक |
डाउनलोड करें | README |
|
|
|
|
|
|
Quarterly downloads | 457 (Ranked 23rd) |
Public wikis using | 1,226 (Ranked 212nd) |
CirrusSearch एक्सटेंशन को अनुवादित करें अगर यह translatewiki.net पर उपलब्ध है | |
आवारा भूमिका | cirrussearch |
मुद्दे | अधूरे कार्य · बग की रिपोर्ट करें |
CirrusSearch एक्सटेंशन की मदद से आप मीडियाविकि पर Elasticsearch के ज़रिए खोज सकते हैं।
Elastic Search is a standalone third-party software that must be installed in advance. It's a database system that provides search and indexing functionality, and where the current text of all pages of your wiki will be indexed for faster search results. The communication between MediaWiki and ElasticSearch is done through web services.
यह पृष्ठ स्थापना के लिए है। स्थापना के काम करने के बाद उपयोग के लिए Help:CirrusSearch देखें।
लक्ष्य
- कोई लोकल निर्भरता नहीं जो इसे स्थापित करना मुश्किल बना दे
- मात्र निर्भरताएँ हैं पूर्ण-PHP मीडियाविकि एक्सटेंशन्स, और Elasticsearch
- विकि पृष्ठों के लिए एक करीब-लाइव खोज इनडेक्स प्रदान करना जिसे दूसरे मीडियाविकि एक्सटेंशनों द्वारा बढ़ाया जा सके
- MWSearch द्वारा सदस्यों को दिए गए क्वेरी के सभी विकल्प, और अधिक प्रदान करना
निर्भरताएँ
- PHP और cURL
- PHP के लिए मीडियाविकि की मानक आवश्यकताओं के अलावा, CirrusSearch को cURL समर्थन के साथ संकलित किए जाने के लिए PHP की ज़रूरत है।
- ध्यान रखें कि संस्करण 6.8 से पहले के Elasticsearch संस्करण PHP 8 से अनुकूल नहीं हैं।
- Elasticsearch
- आपको Elasticsearch स्थापित करना होगा।
Every version of ElasticSearch change how web services work, and cause compatibility problems. You must install the version of Elastic Search compatible with the version of MediaWiki you are currently using:
- मीडियाविकि 1.29.x - 1.30.x पर Elasticsearch 5.3.x - 5.4.x की ज़रूरत होगी
- मीडियाविकि 1.31.x - 1.32.x पर Elasticsearch 5.5.x - 5.6.x की ज़रूरत होगी
- मीडियाविकि 1.33.x - 1.38.x पर Elasticsearch 6.5.x - 6.8.x की ज़रूरत होगी (6.8.23+ अनुशंसित)
- मीडियाविकि 1.39+ पर Elasticsearch 7.10.2 की ज़रूरत होगी (compatibility layer की मदद से 6.8.23+ संभव)
ध्यान रखें कि इसके साथ OpenJDK जैसी एक जावा स्थापना की भी ज़रूरत होगी। सबसे अच्छा होगा कि आप आधिकारिक Elasticsearch Docker चित्र या फिर किसी स्वयं होस्ट किए गए संस्करण का इस्तेमाल करें। Amazon OpenSearch (पूर्व Amazon Elasticsearch) जैसे प्रबंधित उत्पाद काम करेंगे मगर इनमें विशेषताओं के अनुसार अतिरिक्त कॉन्फ़िगरेशन की ज़रूरत पड़ सकती है। उदाहरणस्वरूप, Amazon OpenSearch HTTPS के पोर्ट 443 पर सिर्फ Elasticsearch API अनुरोधों की अपेक्षा करता है (यानी यह डिफ़ॉल्ट Elasticsearch पोर्ट 9200 को सार्वजनिक नहीं करता), इसलिए किसी TLS-युक्त प्रॉक्सी (जैसे Nginx) की मदद से CirrusSearch को सक्षम करके Amazon OpenSearch क्लस्टर के साथ संपर्क किया जा सकता है।
- Elastica एक PHP लाइब्रेरी है जिसकी मदद से Elasticsearch से संपर्क किया जा सकता है। नीचे की विधि के अनुसार Elastica स्थापित करें।
- अन्य
- CirrusSearch एक्सटेंशन द्वारा कार्यों को हैंडल करने की प्रक्रिया की वजह से Redis में कार्य सेटअप कर लेना सुझाया जाता है ताकि Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php जैसे संदेश और Unsupported operand types जैसी त्रुटियाँ न आए। टास्क T157759 देखें।
स्थापना
एक्सटेंशन:Elastica
हालाँकि नीचे की विधि में बताया गया है कि गिट से स्थापित करते समय सिर्फ Composer चलाने की ज़रूरत है, सभी PHP निर्भरताओं को स्थापित करने के लिए इसे वैसे भी प्रकाशित करने की ज़रूरत पड़ सकती है।
- फाइलों को डाउनलोड करें और अपने
extensions/
फोल्डर केElastica
नामक डिरेक्ट्री में डालें। - सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से
composer install --no-dev
प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।) - अपने
LocalSettings.php
फ़ाइल के नीचे निम्नलिखित कोड जोड़ें:wfLoadExtension( 'Elastica' );
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
CirrusSearch
- फाइलों को डाउनलोड करें और अपने
extensions/
फोल्डर केCirrusSearch
नामक डिरेक्ट्री में डालें। - सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से
composer install --no-dev
प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।) - अपने
LocalSettings.php
फ़ाइल के नीचे निम्नलिखित कोड जोड़ें:wfLoadExtension( 'CirrusSearch' );
- अब आपके एक्सटेंशन के साथ दिए गए CirrusSearch README में सेटअप की विधि पढ़ें, यानी
$IP/extensions/CirrusSearch/README
। ध्यान रखें कि इसमें सारी जानकारी शायद एक्सटेंशन के आपके संस्करण पर लागू न हो, खासकर कि समर्थित Elasticsearch का संस्करण। - आवश्यकतानुसार कॉन्फ़िगर करें।
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
अपग्रेड करना
कृपया CirrusSearch UPGRADE फ़ाइल में अपग्रेड करने की विधि का पालन करें।
कॉन्फ़िगरेशन
CirrusSearch के कॉन्फ़िगरेशन पैरामीटरों को "settings.txt" फ़ाइल में प्रलेखित किया गया है। CirrusSearch कॉन्फ़िगरेशन प्रोफ़ाइलों पर प्रलेख भी देखें।
$wgCirrusSearchIndexBaseName
कॉन्फ़िगरेशन पैरामीटर प्रदान करता है जिसे सदस्य को सेट करना होगा, जैसे $wgCirrusSearchIndexBaseName = 'mywikidatabasename';
।
हुक
CirrusSearch एक्सटेंशन कई हुक्स परिभाषित करता है जिसका इस्तेमाल करके दूसरे एक्सटेंशन्स मूल स्केमा को बढ़ाकर दस्तावेज़ों को बदल सकते हैं। निम्नलिखित हुक उपलब्ध हैं:
- CirrusSearchAnalysisConfig - विवेचन के लिए कॉन्फ़िगरेशन में हुक करने देता है
- CirrusSearchMappingConfig - फ़ील्ड्स के मानचित्रण को कॉन्फ़िगर करने देता है
- CirrusSearchBuildDocumentParse - एक्सटेंशनों को किसी पृष्ठ से बने ElasticSearch दस्तावेज़ को बदलने की अनुमति देता है
- CirrusSearchBuildDocumentLinks - एक्सटेंशनों को दस्तावेज़ों की आवक और जावक कड़ियों को प्रोसेस करने की अनुमति देता है
- CirrusSearchBuildDocumentFinishBatch - बुलाया जाता है जब पृष्ठों के किसी समूह को इनडेक्स किया जाए
- CirrusSearchAddQueryFeatures - एक्सटेंशनों को क्वेरी पार्सर की सुविधाएँ जोड़ने देता है
- CirrusSearchScoreBuilder - एक्सटेंशनों को संसाधन रीस्कोर बिल्डर फ़ंक्शन्स परिभाषित करने देता है
- CirrusSearchProfileService - एक्सटेंशनों को खोज के कई हिस्से और कॉन्फ़िगरेशन्स घोषित करने देता है
API
CirrusSearch की सुविधाओं का इस्तेमाल API क्वेरीज़ में किया जा सकता है।
खोज साधारण खोज API action=query&list=search
द्वारा किया जाता है; आप सिर्फ CirrusSearch पर उपलब्ध कुछ सुविधाओं का इस्तेमाल कर सकते हैं, जैसे morelike:
विशेष उपसर्ग जिससे आप Marie Curie और radium से संबंधित दूसरे पृष्ठ ढूँढ़ सकते हैं: api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2
अनुकूलित API-ओं और पैरामीटरों से CirrusSearch के कॉन्फ़िगरेशन और डीबग की जानकारी पाई जा सकती है:
action=cirrusdump
मॉड्यूल: 2014?action=cirrusdumpcirrusDumpQuery
पैरामीटर से Special:Search का इस्तेमाल करें या API क्वेरीज़ खोजें: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuerycirrusDumpResult
पैरामीटर से Special:Search का इस्तेमाल करें या API क्वेरीज़ खोजें: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult- एक अतिरिक्त पैरामीटर,
cirrusExplain
, कोcirrusDumpResult
के साथ पास करके परिणाम डम्प के साथ स्कोर की Lucene व्याख्या प्राप्त की जा सकती है: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain। इसकी मदद से व्याख्या को एक मानव-पठनीय प्रारूप में पाया जा सकता है, जिसके लिए इसमेंverbose
,pretty
याhot
में से कोई एक वैल्यू देना होगा, जैसे कि: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty। - CirrusSearch सेटअप से डम्प प्राप्त करने के लिए
cirrus-config-dump
,cirrus-settings-dump
,cirrus-mapping-dump
,cirrus-profiles-dump
मॉड्यूल्स: api.php?action=cirrus-config-dump&formatversion=2
ये भी देखें
- साधारण कड़ियाँ
- उपयोग सहायता पृष्ठ - CirrusSearch उपयोग प्रलेख (स्थापना के बाद ज़रूरत पड़ती है)
- परियोजना पृष्ठ
- विकिमीडिया Cirrus/Elastic के सेटअप के बारे में जानकारी
- कॉन्फ़िगरेशन सहायता पृष्ठ - ट्यून करने योग्य पैरामीटरों के समूह जो इनडेक्सिंग के अलग-अलग पहलुओं को प्रभावित करते हैं
- Extension:WikiSearch - provides faceted search API for Semantic MediaWiki using ElasticSearch.
- Extension:AdvancedSearch - Enhances Special:Search by providing advanced parameters
- डीबगिंग
स्थानीय विकास
Elastic Search सेवा को Vagrant रोल (cirrussearch
) और मीडियाविकि Vagrant की मदद से चलाया जाता है।
Docker के लिए आप docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2
जैसे किसी कमांड का इस्तेमाल कर सकते हैं।
फिर स्थापना और कॉन्फ़िगरेशन के अनुदेशों का पालन करें।
अगर आपका वेब-होस्ट किसी कंटेनर में है, आपको यह सुनिश्चित करना होगा कि कंटेनर एक ही नेटवर्क पर है, और LocalSettings.php में आप elasticsearch
को होस्ट के नाम के रूप में सन्दर्भित करना चाहेंगे।
इसमें बुनियादी WMF प्लगिन्स नहीं होंगी मगर यह बुनियादी परीक्षण करवा सकता है।
इस एक्सटेंशन का इस्तेमाल एक या अधिक विकिमीडिया परियोजनाओं पर किया जा रहा है। इसका शायद मतलब है कि एक्सटेंशन स्थिर है और इस तरह के अधिक दर्शकों वाले वेबसाइटों द्वारा उपयोग किए जाने के लिए पर्याप्त रूप से काम करता है। विकिमीडिया की CommonSettings.php और InitialiseSettings.php कॉन्फ़िगरेशन फ़ाइलों में इस एक्सटेंशन का नाम खोजें, और यह वहीं स्थापित होगा। किसी विशिष्ट विकि पर स्थापित एक्सटेंशन्स की पूरी सूची को विकि के Special:Version पृष्ठ पर देखा जा सकता है। |
इस एक्सटेंशन को निम्न पैकेजेस और/या विकि फ़ार्म्स में शामिल किया गया है: यह कोई आधिकारिक सूची नहीं है। कुछ विकि फ़ार्म्स/होस्ट्स में यह extension हो सकता है हालाँकि शायद वे यहाँ सूचीबद्ध न हों। सुनिश्चित करने के लिए हमेशा अपने विकि फ़ार्म/होस्ट से संपर्क करें या बंडल जाँचें। |