Extension:CirrusSearch/hi

CirrusSearch एक्सटेंशन की मदद से आप मीडियाविकि पर Elasticsearch के ज़रिए खोज सकते हैं।

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
 * विकि पृष्ठों के लिए एक करीब-लाइव खोज इनडेक्स प्रदान करना जिसे दूसरे मीडियाविकि एक्सटेंशनों द्वारा बढ़ाया जा सके
 * द्वारा सदस्यों को दिए गए क्वेरी के सभी विकल्प, और अधिक प्रदान करना

निर्भरताएँ

 * 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:

ध्यान रखें कि इसके साथ OpenJDK जैसी एक जावा स्थापना की भी ज़रूरत होगी। सबसे अच्छा होगा कि आप आधिकारिक Elasticsearch Docker चित्र या फिर किसी स्वयं होस्ट किए गए संस्करण का इस्तेमाल करें। Amazon OpenSearch (पूर्व Amazon Elasticsearch) जैसे प्रबंधित उत्पाद काम करेंगे मगर इनमें विशेषताओं के अनुसार अतिरिक्त कॉन्फ़िगरेशन की ज़रूरत पड़ सकती है। उदाहरणस्वरूप, Amazon OpenSearch HTTPS के पोर्ट 443 पर सिर्फ Elasticsearch API अनुरोधों की अपेक्षा करता है (यानी यह डिफ़ॉल्ट Elasticsearch पोर्ट 9200 को सार्वजनिक नहीं करता), इसलिए किसी TLS-युक्त प्रॉक्सी (जैसे Nginx) की मदद से CirrusSearch को सक्षम करके Amazon OpenSearch क्लस्टर के साथ संपर्क किया जा सकता है।


 * Elastica एक PHP लाइब्रेरी है जिसकी मदद से Elasticsearch से संपर्क किया जा सकता है। नीचे की विधि के अनुसार Elastica स्थापित करें।
 * Elastica एक PHP लाइब्रेरी है जिसकी मदद से Elasticsearch से संपर्क किया जा सकता है। नीचे की विधि के अनुसार Elastica स्थापित करें।


 * अन्य :
 * CirrusSearch एक्सटेंशन द्वारा कार्यों को हैंडल करने की प्रक्रिया की वजह से Redis में कार्य सेटअप कर लेना सुझाया जाता है ताकि Notice: unserialize: Error at offset 64870 of 65535 bytes in JobQueueDB.php जैसे संदेश और Unsupported operand types जैसी त्रुटियाँ न आए। देखें।

हालाँकि नीचे की विधि में बताया गया है कि गिट से स्थापित करते समय सिर्फ Composer चलाने की ज़रूरत है, सभी PHP निर्भरताओं को स्थापित करने के लिए इसे वैसे भी प्रकाशित करने की ज़रूरत पड़ सकती है।

अपग्रेड करना
कृपया CirrusSearch फ़ाइल में अपग्रेड करने की विधि का पालन करें।

कॉन्फ़िगरेशन
CirrusSearch के कॉन्फ़िगरेशन पैरामीटरों को फ़ाइल में प्रलेखित किया गया है। CirrusSearch कॉन्फ़िगरेशन प्रोफ़ाइलों पर प्रलेख भी देखें।

हुक
CirrusSearch एक्सटेंशन कई हुक्स परिभाषित करता है जिसका इस्तेमाल करके दूसरे एक्सटेंशन्स मूल स्केमा को बढ़ाकर दस्तावेज़ों को बदल सकते हैं। निम्नलिखित हुक उपलब्ध हैं:


 * - विवेचन के लिए कॉन्फ़िगरेशन में हुक करने देता है
 * - फ़ील्ड्स के मानचित्रण को कॉन्फ़िगर करने देता है
 * - एक्सटेंशनों को किसी पृष्ठ से बने ElasticSearch दस्तावेज़ को बदलने की अनुमति देता है
 * - एक्सटेंशनों को दस्तावेज़ों की आवक और जावक कड़ियों को प्रोसेस करने की अनुमति देता है
 * - बुलाया जाता है जब पृष्ठों के किसी समूह को इनडेक्स किया जाए
 * - एक्सटेंशनों को क्वेरी पार्सर की सुविधाएँ जोड़ने देता है
 * - एक्सटेंशनों को संसाधन रीस्कोर बिल्डर फ़ंक्शन्स परिभाषित करने देता है
 * - एक्सटेंशनों को खोज के कई हिस्से और कॉन्फ़िगरेशन्स घोषित करने देता है

API
CirrusSearch की सुविधाओं का इस्तेमाल API क्वेरीज़ में किया जा सकता है। खोज साधारण खोज API  द्वारा किया जाता है; आप सिर्फ CirrusSearch पर उपलब्ध कुछ सुविधाओं का इस्तेमाल कर सकते हैं, जैसे   विशेष उपसर्ग जिससे आप 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 के कॉन्फ़िगरेशन और डीबग की जानकारी पाई जा सकती है:


 * मॉड्यूल: 2014?action=cirrusdump
 * पैरामीटर से Special:Search का इस्तेमाल करें या API क्वेरीज़ खोजें: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuery
 * पैरामीटर से Special:Search का इस्तेमाल करें या API क्वेरीज़ खोजें: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult
 * एक अतिरिक्त पैरामीटर,, को   के साथ पास करके परिणाम डम्प के साथ स्कोर की Lucene व्याख्या प्राप्त की जा सकती है: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain। इसकी मदद से व्याख्या को एक मानव-पठनीय प्रारूप में पाया जा सकता है, जिसके लिए इसमें  ,   या   में से कोई एक वैल्यू देना होगा, जैसे कि: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty।
 * CirrusSearch सेटअप से डम्प प्राप्त करने के लिए,  ,  ,   मॉड्यूल्स: api.php?action=cirrus-config-dump&formatversion=2



ये भी देखें

 * साधारण कड़ियाँ
 * - CirrusSearch उपयोग प्रलेख (स्थापना के बाद ज़रूरत पड़ती है)
 * विकिमीडिया Cirrus/Elastic के सेटअप के बारे में जानकारी
 * - ट्यून करने योग्य पैरामीटरों के समूह जो इनडेक्सिंग के अलग-अलग पहलुओं को प्रभावित करते हैं
 * - provides faceted search API for Semantic MediaWiki using ElasticSearch.
 * - Enhances Special:Search by providing advanced parameters
 * डीबगिंग
 * पता कैसे लगाएँ कि Cirrus का इस्तेमाल असल में खोज बैक-एंड के रूप में किया जा रहा है या नहीं
 * पता कैसे लगाएँ कि Cirrus का इस्तेमाल असल में खोज बैक-एंड के रूप में किया जा रहा है या नहीं



स्थानीय विकास
Elastic Search सेवा को Vagrant रोल और मीडियाविकि Vagrant की मदद से चलाया जाता है।

Docker के लिए आप  जैसे किसी कमांड का इस्तेमाल कर सकते हैं। फिर स्थापना और कॉन्फ़िगरेशन के अनुदेशों का पालन करें। अगर आपका वेब-होस्ट किसी कंटेनर में है, आपको यह सुनिश्चित करना होगा कि कंटेनर एक ही नेटवर्क पर है, और LocalSettings.php में आप  को होस्ट के नाम के रूप में सन्दर्भित करना चाहेंगे। इसमें बुनियादी WMF प्लगिन्स नहीं होंगी मगर यह बुनियादी परीक्षण करवा सकता है।