एक्सटेंशन:CirrusSearch
CirrusSearch प्रकाशन की स्थिति: स्थिर |
|
---|---|
कार्यान्वयन | खोज, API , हुक |
विवरण | Elasticsearch की मदद से मीडियाविकि को खोजने देता है |
लेखक | Nik Everett, Chad Horohoe, Erik Bernhardson |
नवीनतम संस्करण | निरंतर अद्यतन |
संगतता नीति | मीडियाविकि के साथ प्रकाशित स्नैपशॉट्स। Master में पीछे की तरफ से संगतता नहीं है। |
MediaWiki | >= 1.43 |
Composer | mediawiki/cirrussearch |
लाइसेंस | GNU साधारण सार्वजनिक लाइसेंस 2.0 या अधिक |
डाउनलोड करें | README |
|
|
|
|
|
|
Quarterly downloads | 282 (Ranked 18th) |
Public wikis using | 1,226 (Ranked 212nd) |
CirrusSearch एक्सटेंशन को अनुवादित करें अगर यह translatewiki.net पर उपलब्ध है | |
आवारा भूमिका | cirrussearch |
मुद्दे | अधूरे कार्य · बग की रिपोर्ट करें |
CirrusSearch एक्सटेंशन की मदद से आप मीडियाविकि पर Elasticsearch के ज़रिए खोज सकते हैं।
CirrusSearch has been slated for migration to use OpenSearch as its backend, but this decision is being reviewed based on a late August 2024 blog post from the upstream provider of the current search backend concerning its licensing. Please see Wikimedia Search Platform/Decision Records/Search backend replacement technology for more information. |
Elasticsearch is a standalone third-party software you must install as a requirement for this extension. It is a database system that provides search and indexing functionality, where the current text of your wiki pages gets indexed for faster and improved search results. The communication between MediaWiki and ElasticSearch is done through web services.
See also the help page on using this extension.
लक्ष्य
- कोई लोकल निर्भरता नहीं जो इसे स्थापित करना मुश्किल बना दे
** मात्र निर्भरताएँ हैं पूर्ण-PHP मीडियाविकि एक्सटेंशन्स, और Elasticsearch
- विकि पृष्ठों के लिए एक करीब-लाइव खोज इनडेक्स प्रदान करना जिसे दूसरे मीडियाविकि एक्सटेंशनों द्वारा बढ़ाया जा सके
- MWSearch द्वारा सदस्यों को दिए गए क्वेरी के सभी विकल्प, और अधिक प्रदान करना
निर्भरताएँ
- PHP और cURL
- PHP के लिए मीडियाविकि की मानक आवश्यकताओं के अलावा, CirrusSearch को cURL समर्थन के साथ संकलित किए जाने के लिए PHP की ज़रूरत है।
- Elasticsearch
- आपको Elasticsearch स्थापित करना होगा।
Every version of ElasticSearch changes how web services work and causes compatibility problems. You must install the version of Elastic Search compatible with the version of MediaWiki you are currently using:
ध्यान रखें कि इसके साथ 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 देखें।
स्थापना
हालाँकि नीचे की विधि में बताया गया है कि गिट से स्थापित करते समय सिर्फ Composer चलाने की ज़रूरत है, सभी PHP निर्भरताओं को स्थापित करने के लिए इसे वैसे भी प्रकाशित करने की ज़रूरत पड़ सकती है।
- फ़ाइलों को डाउनलोड करें और अपने
extensions/
फ़ोल्डर केElastica
नामक डिरेक्ट्री में डालें।
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica - सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से
composer install --no-dev
प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।) - अपने LocalSettings.php फ़ाइल के अंत में निम्न कोड जोड़ें:
wfLoadExtension( 'Elastica' );
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
CirrusSearch
- फ़ाइलों को डाउनलोड करें और अपने
extensions/
फ़ोल्डर केCirrusSearch
नामक डिरेक्ट्री में डालें।
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch - सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से
composer install --no-dev
प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।) - अपने LocalSettings.php फ़ाइल के अंत में निम्न कोड जोड़ें:
wfLoadExtension( 'CirrusSearch' );
- अब आपके एक्सटेंशन के साथ दिए गए CirrusSearch README में सेटअप की विधि पढ़ें, यानी
$IP/extensions/CirrusSearch/README
। ध्यान रखें कि इसमें सारी जानकारी शायद एक्सटेंशन के आपके संस्करण पर लागू न हो, खासकर कि समर्थित Elasticsearch का संस्करण। - आवश्यकतानुसार कॉन्फ़िगर करें।
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
Enable regex queries
This is an optional step. You will need to install the search-extra plugin for this. Do so by following these steps:
- execute the following command:
/usr/share/elasticsearch/bin/elasticsearch-plugin/elasticsearch-plugin install org.wikimedia.search:extra:7.10.2-wmf12
- add the following line to your
LocalSettings.php
file:$wgCirrusSearchWikimediaExtraPlugin[ 'regex' ] = [ 'build', 'use', 'max_inspect' => 10000 ];
- restart Elasticsearch with the following command:
systemctl restart elasticsearch
- recreate the search index by executing the following commands:
php path/to/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver
php path/to/extensions/CirrusSearch/maintenance/ForceSearchIndex.php
अपग्रेड करना
कृपया 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 से संबंधित दूसरे पृष्ठ ढूँढ़ सकते हैं: [$urlquery api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2]
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 पृष्ठ पर देखा जा सकता है। |
इस एक्सटेंशन को निम्न विकि फ़ार्म्स/होस्ट्स और/या पैकेजिस में शामिल किया गया है: यह कोई आधिकारिक सूची नहीं है। कुछ विकि फ़ॉर्म्स/होस्ट्स और/या पैकेजिस में यह एक्सटेंशन शामिल हो सकता है हालाँकि वो शायद यहाँ सूचीबद्ध न हों। सुनिश्चित करने के लिए हमेशा अपने विकि फ़ार्म/होस्ट से संपर्क करें या बंडल जाँचें। |
- Stable extensions/hi
- Search extensions/hi
- API extensions/hi
- Hook extensions/hi
- Extensions supporting Composer/hi
- GPL licensed extensions/hi
- Extensions in Wikimedia version control/hi
- APIAfterExecute extensions/hi
- APIQuerySiteInfoGeneralInfo extensions/hi
- APIQuerySiteInfoStatisticsInfo extensions/hi
- ApiBeforeMain extensions/hi
- ArticleRevisionVisibilitySet extensions/hi
- BeforeInitialize extensions/hi
- CirrusSearchAddQueryFeatures extensions/hi
- CirrusSearchAnalysisConfig extensions/hi
- CirrusSearchSimilarityConfig extensions/hi
- GetPreferences extensions/hi
- LinksUpdateComplete extensions/hi
- PageDelete extensions/hi
- PageDeleteComplete extensions/hi
- PageMoveComplete extensions/hi
- PageUndeleteComplete extensions/hi
- PrefixSearchExtractNamespace extensions/hi
- ResourceLoaderGetConfigVars extensions/hi
- SearchGetNearMatch extensions/hi
- SearchIndexFields extensions/hi
- ShowSearchHitTitle extensions/hi
- SoftwareInfo extensions/hi
- SpecialSearchResults extensions/hi
- SpecialSearchResultsAppend extensions/hi
- SpecialStatsAddExtra extensions/hi
- TitleMove extensions/hi
- UploadComplete extensions/hi
- UserGetDefaultOptions extensions/hi
- All extensions/hi
- Extensions requiring Composer with git/hi
- Extensions used on Wikimedia/hi
- Extensions included in Canasta/hi
- Extensions included in Miraheze/hi
- Extensions included in MyWikis/hi
- Extensions included in semantic::core/hi
- Extensions included in wiki.gg/hi
- Extensions included in WikiForge/hi
- Discovery/hi
- Search/hi