Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

Laravel में Scout का उपयोग कर एक फुल-टेक्स्ट सर्च कैसे सेट करें

by
Difficulty:IntermediateLength:MediumLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

यूज़र्स को कंटेंट से भरी हुई वेबसाइटों पर नेविगेट करने की अनुमति देने के लिए फुल-टेक्स्ट सर्च महत्वपूर्ण है। इस पोस्ट में, मैं आपको एक Laravel ऐप के लिए फुल-टेक्स्ट सर्च को इम्प्लीमेंट करने का तरीका दिखाऊंगा। वास्तव में, हम Laravel Scout लाइब्रेरी का उपयोग करेंगे, जो फुल-टेक्स्ट सर्च को इम्प्लीमेंट करना आसान और मजेदार बनाता है।

Laravel Scout वास्तव में क्या है? आधिकारिक डॉक्यूमेंटेशन इसे इस तरह बताता है:

Laravel Scout आपके Eloquent मॉडल में फुल-टेक्स्ट सर्च जोड़ने के लिए एक सरल, ड्राइवर-आधारित समाधान प्रदान करता है। मॉडल ऑब्सेर्वेर्स का उपयोग करके, Scout स्वचालित रूप से आपकी सर्च इंडेक्स को आपके Eloquent रिकॉर्ड के साथ सिंक रखेगा।

असल में, Laravel Scout एक ऐसी लाइब्रेरी है जो मॉडल डेटा में बदलाव होने पर इंडेक्स में मैनिपुलेट का प्रबंधन करती है। वह जगह जहां डेटा इंडेक्स किया जाएगा उस ड्राइवर पर निर्भर करता है जिसे आपने Scout लाइब्रेरी के साथ कॉन्फ़िगर किया है।

अभी तक, Scout लाइब्रेरी क्लाउड-आधारित सर्च इंजन API Algolia का समर्थन करती है, और यही वह है जिसे हम इस आर्टिकल में फुल-टेक्स्ट सर्च इम्प्लीमेंटेशन का प्रदर्शन करने के लिए उपयोग करेंगे।

हम Scout और Algolia सर्वर लाइब्रेरीज को इनस्टॉल करके शुरू करेंगे, और जैसे ही हम आगे बढ़ेंगे, हम यह दिखाने के लिए एक असली दुनिया के उदाहरण से गुजरेंगे कि आप कैसे अपना डेटा इंडेक्स और सर्च सकते हैं।

सर्वर कॉन्फ़िगरेशन

इस सेक्शन में, हम Scout लाइब्रेरी को लाइब्रेरीज के साथ काम करने के लिए आवश्यक डेपेंडेन्सीज़ को इनस्टॉल करने जा रहे हैं। इनस्टॉल करने के बाद, हमें काफी कॉन्फ़िगरेशन के माध्यम से जाना होगा ताकि Laravel Scout लाइब्रेरी का पता लगा सके।

आइए आगे बढ़ें और Composer का उपयोग करके Scout लाइब्रेरी इंस्टॉल करें।

Scout लाइब्रेरी इंस्टॉलेशन के संबंध में यह काफी है। अब हमने Scout लाइब्रेरी इनस्टॉल की है, आइए सुनिश्चित करें कि Laravel इसके बारे में जानता है।

Laravel के साथ काम करना, आप शायद एक सर्विस प्रोवाइडर की अवधारणा से अवगत हैं, जो आपको अपने एप्लीकेशन में सर्विसेज को कॉन्फ़िगर करने की अनुमति देता है। इस प्रकार, जब भी आप अपने Laravel एप्लिकेशन में एक नई सर्विस को इनेबल करना चाहते हैं, तो आपको config/app.php में एक संबंधित सर्विस प्रोवाइडर एंट्री जोड़ने की आवश्यकता है।

यदि आप अभी तक Laravel सर्विस प्रोवाइडर से परिचित नहीं हैं, तो मैं दृढ़ता से रेकमेंड करता हूं कि आप स्वयं को एक फेवर दें और इस प्रारंभिक आर्टिकल के माध्यम से जाएं जो Laravel में सर्विस प्रोवाइडर की मूल बातें बताता है

हमारे मामले में, हमें निम्न स्निपेट में दिखाए गए अनुसार, config/app.php में सर्विस प्रोवाइडर की सूची में ScoutServiceProvider प्रोवाइडर को जोड़ने की आवश्यकता है।

अब, Laravel ScoutServiceProvider सर्विस प्रोवाइडर से अवगत है। Scout लाइब्रेरी एक कॉन्फ़िगरेशन फ़ाइल के साथ आता है जो हमें API क्रेडेंशियल्स सेट करने की अनुमति देता है।

आइए आगे बढ़ें और निम्न कमांड का उपयोग करके Scout लाइब्रेरी द्वारा प्रदान किये गए एसेट को पब्लिश करें।

जैसा कि आप देख सकते हैं, उसने vendor/laravel/scout/config/scout.php फ़ाइल को config/scout.php पर कॉपी किया है।

इसके बाद, आगे बढ़ें और Algolia के साथ एक अकाउंट बनाएं क्योंकि हमें पहले स्थान पर API क्रेडेंशियल्स की आवश्यकता होगी। एक बार आपके पास API जानकारी हो जाने के बाद, आगे बढ़ें और config/scout.php फ़ाइल में आवश्यक सेटिंग्स कॉन्फ़िगर करें, जैसा कि निम्न स्निपेट में दिखाया गया है।

ध्यान दें कि हमने SCOUT_DRIVER की वैल्यू algolia ड्राइवर को सेट कर दिया है। इस प्रकार, यह आवश्यक है कि आप फ़ाइल के अंत में Algolia ड्राइवर के लिए आवश्यक सेटिंग्स कॉन्फ़िगर करें। असल में, आपको बस Algolia खाते से मिली id और secret सेट करने की आवश्यकता है।

जैसा कि आप देख सकते हैं, हम एनवायरनमेंट वेरिएबल से वैल्यू प्राप्त कर रहे हैं। तो आइए सुनिश्चित करें कि हमने .env फ़ाइल में निम्न वेरिएबल सेट किये है।

अंत में, हमें Algolia PHP SDK इनस्टॉल करने की आवश्यकता है, जिसका उपयोग API का उपयोग करके Algolia से बातचीत करने के लिए किया जाएगा। आइए निम्न स्निपेट में दिखाए गए कंपोजर का उपयोग करके इसे इंस्टॉल करें।

और इसके साथ ही, हमने Algolia सर्विस को डेटा पोस्ट और इंडेक्स करने के लिए जरूरी सभी डेपेंडेन्सीज़ को इनस्टॉल किया है।

मॉडल इंडेक्स और सर्च करने योग्य बनाओ

पिछले सेक्शन में, हमने Scout और Algolia लाइब्रेरीज को इनस्टॉल करने के लिए कड़ी मेहनत की थी ताकि हम Algolia सर्च सर्विस का उपयोग करके डेटा इंडेक्स और सर्च कर सकें।

इस सेक्शन में, हम एक उदाहरण के माध्यम से देखेंगे जो दर्शाता है कि आप मौजूदा डेटा को कैसे इंडेक्स्ड कर सकते हैं और Algolia से सर्च परिणामों को प्राप्त कर सकते हैं। मुझे लगता है कि आपके पास आपके एप्लिकेशन में एक डिफ़ॉल्ट Post मॉडल है जिसे हम अपने उदाहरण में उपयोग करेंगे।

पहली बात यह है कि हमें Post मॉडल में Laravel\Scout\Searchable ट्रेट जोड़ने की आवश्यकता होगी। इससे Post मॉडल search करने योग्य बनाता है; जब भी पोस्ट रिकॉर्ड जोड़ा जाता है, अपडेट किया जाता है, या हटा दिया जाता है तो Laravel Algolia इंडेक्स के साथ पोस्ट रिकॉर्ड सिंक्रनाइज़ करता है।

उसके साथ, Post मॉडल सर्च करने के अनुकूल है!

इसके बाद, हम उन फ़ील्ड को कॉन्फ़िगर करना चाहते हैं जिन्हें पहले स्थान पर इंडेक्स्ड किया जाना चाहिए। बेशक, आप इसे प्रभावी और हल्का रखने के लिए Algolia में अपने मॉडल के सभी क्षेत्रों को इंडेक्स नहीं करना चाहते हैं। वास्तव में, अधिकतर समय, आपको इसकी आवश्यकता नहीं होगी।

आप इंडेक्स्ड किए गए फ़ील्ड को कॉन्फ़िगर करने के लिए मॉडल क्लास में toSearchableArray जोड़ सकते हैं।

अब, हम Algolia में मौजूदा Post रिकॉर्ड इम्पोर्ट और इंडेक्स करने के लिए तैयार हैं। वास्तव में, Scout लाइब्रेरी निम्नलिखित आर्टिसन कमांड प्रदान करके यह आसान बनाता है।

इसे Post मॉडल के सभी रिकॉर्ड एक ही बार में इम्पोर्ट करना चाहिए! जैसे ही वे इम्पोर्ट किए जाते हैं उन्हें इंडेक्स्ड किया जाता है, इसलिए हम पहले से ही रिकॉर्ड्स पूछने के लिए तैयार हैं। इम्पोर्ट किये गए रिकॉर्ड और अन्य यूटिलिटीज को देखने के लिए आगे बढ़ें और Algolia डैशबोर्ड को एक्स्प्लोर करें।

यह सब कैसे काम करता है

इस सेक्शन में, हम एक उदाहरण तैयार करेंगे जो दर्शाता है कि कैसे सर्च और CRUD ऑपरेशन करना है जो वास्तविक समय में Algolia इंडेक्स के साथ समन्वयित होते हैं।

आगे बढ़ें और निम्नलिखित कंटेंट के साथ app/Http/Controllers/SearchController.php फ़ाइल बनाएं।

बेशक, हमें संबंधित रूट भी जोड़ना होगा।

Algolia में सर्च करने के तरीके को देखने के लिए query मेथड को समझे।

याद रखें कि हमने Searchable ट्रेट जोड़कर Post मॉडल को सर्च करने योग्य बनाया है। इस प्रकार, Post मॉडल Algolia इंडेक्स से रिकॉर्ड्स प्राप्त करने के लिए search मेथड का उपयोग कर सकता है। उपरोक्त उदाहरण में, हम title प्राप्त करने वाले रिकॉर्ड प्राप्त करने का प्रयास कर रहे हैं।

इसके बाद, एक add मेथड है जो एक नया Post रिकॉर्ड जोड़ने के वर्कफ़्लो का अनुकरण करती है।

उपरोक्त कोड में कुछ भी फैंसी नहीं है; यह सिर्फ Post मॉडल का उपयोग कर एक नया पोस्ट रिकॉर्ड बनाता है। लेकिन Post मॉडल Searchable ट्रेट लागू करता है, इसलिए Laravel इस समय Algolia में नए बनाए गए रिकॉर्ड को इंडेक्सिंग करके कुछ अतिरिक्त काम करता है। तो जैसा कि आप देख सकते हैं, इंडेक्सिंग वास्तविक समय में किया जाता है।

अंत में, delete मेथड है। चलो इसके माध्यम से भी चलो।

जैसा कि आप उम्मीद करते थे, जैसे ही डेटाबेस से हटा दिया जाता है, रिकॉर्ड को Algolia इंडेक्स से तुरंत हटा दिया जाता है।

असल में, यदि आप मौजूदा मॉडल सर्च करने योग्य बनाना चाहते हैं तो आपके साइड से कोई अतिरिक्त प्रयास की आवश्यक नहीं है। मॉडल आब्जर्वर का उपयोग कर Scout लाइब्रेरी द्वारा सबकुछ संभाला जाता है।

और यह हमें इस लेख के अंत में भी लाता है!

निष्कर्ष

आज, हमने चर्चा की कि आप Laravel Scout लाइब्रेरी का उपयोग करके Laravel में फुल-टेक्स्ट सर्च कैसे इम्प्लीमेंट कर सकते हैं। इस प्रक्रिया में, हम इसे इनस्टॉल करने के लिए आवश्यक इंस्टालेशन और वास्तविक दुनिया के उदाहरण के माध्यम से गए।

कुछ भी पूछने के लिए स्वतंत्र महसूस करें कि नीचे कमेंट फीड का उपयोग करके आपके पास कोई प्रश्न या संदेह है या नहीं!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.