Elasticsearch: अपने डेटाबेस में पूर्ण-पाठ खोज कैसे जोड़ें

व्यवसायों को अक्सर ऐसे अनुप्रयोगों का निर्माण करने की आवश्यकता होती है जो न केवल डेटा एकत्र करते हैं और सहेजते हैं, बल्कि इसका विश्लेषण भी करते हैं और इसे खोज योग्य बनाते हैं। इसे पूरा करने के लिए परियोजनाओं में शक्तिशाली खोज क्षमताओं का निर्माण किया जाना चाहिए। तेजी से, पूर्ण-पाठ खोज कार्यक्षमता का निर्माण करने के लिए तेजी से टीमें एलिस्टिक्स खोज की ओर बढ़ रही हैं।

एलिटिक्स खोज क्या है: एक अवलोकन

एलियटेसर्च एक मजबूत और प्लेटफ़ॉर्म-स्वतंत्र खोज इंजन है जो लाखों दस्तावेज़ों पर तेजी से पूर्ण-पाठ खोज प्रदान कर सकता है।

यह Restful संचार पर आधारित एक दस्तावेज़ स्टोर है। डिफ़ॉल्ट रूप से, यह एक दस्तावेज़ में सभी क्षेत्रों को अनुक्रमित करता है, और वे तुरंत खोज योग्य हो जाते हैं। एलिटिक्स खोज JSON प्रारूप में दस्तावेजों को संग्रहीत करता है। इसमें कई प्रोग्रामिंग भाषाओं के लिए समर्थन है। अज्ञेय खोज इंजन के रूप में, यह आपकी पसंद की भाषा और मंच के साथ उपयोग किया जा सकता है।

जिस समय यह पोस्ट लिखी गई थी, उस समय डेटाबेस के लिए एलिटिक्स खोज को ग्यारहवें स्थान पर रखा गया था, और इसके अच्छे कारण थे।

टीमें एलिटिक्स खोज क्यों चुनें

निम्नलिखित कंपनियां अब यह नहीं पूछ रही हैं, "एलिटिक्स खोज क्या है?" वे इस पर भरोसा करते हैं और डेटा की खोज करते हैं।

विकिपीडिया। सुझाए गए पाठ को प्रदान करने के लिए खोज प्रदाता पूर्ण-पाठ खोज के लिए एलिस्टिक्स खोज पर निर्भर है।

अभिभावक। सोशल और विज़िटर डेटा के माध्यम से प्रकाशित मीडिया पर जनता की राय के बारे में संपादकों को वर्तमान प्रतिक्रिया देने के लिए मीडिया साइट एलिस्टिक्स खोज का उपयोग करती है।

स्टैक ओवरफ़्लो। ज्ञान-साझा करने वाली साइट पूर्ण-पाठ खोज, जियोलोकेशन क्वेरी और स्रोत से संबंधित प्रश्नों और / या उत्तरों को पूरा करने के लिए एलीस्टेकर्च का उपयोग करती है।

GitHub। परियोजना होस्ट इंजन के साथ कोड की अरबों पंक्तियों की मेजबानी करती है।

अभी भी सोच रहा है, "एलिटिक्स खोज क्या है, और यह क्यों मायने रखता है?" निम्नलिखित लाभ उपयोगकर्ताओं के लिए एलिस्टिक्स खोज मूल्य प्रस्ताव को सारांशित करते हैं।

अनुमापकता

टीमें एलियस्टेकसर्च का पक्ष लेती हैं क्योंकि यह स्वभाव से एक वितरित प्रणाली है और आसानी से संसाधनों का विस्तार करने और एक क्लस्टर में नोड्स के बीच लोडिंग को संतुलित करने की क्षमता प्रदान कर सकती है। यह सर्वर नोड विफलता के मामले में डेटा हानि को रोकने के लिए डेटा को स्वचालित रूप से दोहराता है।

Elasticsearch सैकड़ों सर्वरों और सूचनाओं के पेटाबाइट्स को बढ़ाने में सक्षम है।

गति

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

क्वेरी फाइन ट्यूनिंग

इलास्टिक्स की खोज में एक शक्तिशाली JSON- आधारित डीएसएल (डोमेन विशिष्ट भाषा) है, जो विकास टीमों को जटिल प्रश्नों के निर्माण की अनुमति देता है और एक खोज से सबसे सटीक परिणाम प्राप्त करने के लिए उन्हें ट्यून करता है। यह रैंकिंग और समूहीकरण परिणामों का एक तरीका भी प्रदान करता है।

व्यवसाय की जरूरतों और उपयोगकर्ता के दृष्टिकोण की गहरी समझ के साथ टीमें प्रश्नों को हल कर सकती हैं, इसलिए सबसे प्रासंगिक परिणाम हमेशा परिणाम सेट के शीर्ष पर दिखाई देते हैं। इस तरह, बिल्ड टीमें यह सुनिश्चित कर सकती हैं कि उपयोगकर्ता हमेशा वही प्रदर्शित करें जो वे पहले प्रदर्शित परिणामों के बीच पेज 1 पर देख रहे हैं।

जानकारी का प्रकार

इलास्टिसर्च सभी आमतौर पर उपयोग किए जाने वाले डेटा प्रकारों के लिए समर्थन प्रदान करता है जैसे:

पाठ: स्ट्रिंग (संरचित और असंरचित डेटा दोनों का हो सकता है)
संख्या: लंबी, पूर्णांक, छोटी, बाइट, डबल, फ्लोट
दिनांक: दिनांक

एलेस्टिक्स खोज जटिल प्रकारों जैसे: सरणियाँ, ऑब्जेक्ट्स, नेस्टेड प्रकार, जियो डेटा प्रकार, IPV4 और अन्य के लिए भी सहायता प्रदान करती है। पूरी सूची के लिए यहां क्लिक करें।

प्लगइन्स

Elasticsearch क्षमताओं को बढ़ावा देने के लिए कई उपयोगी प्लगइन्स प्रदान करता है। प्लगइन्स आपके डेटा को समझने और इसे एक्सप्लोर करने के लिए अधिक समृद्ध विश्लेषण प्रदान करते हैं। वे अतिरिक्त सुरक्षा कार्यक्षमता भी प्रदान करते हैं।

अपने .NET कोर प्रोजेक्ट में एक खोज इंजन जोड़ने की तैयारी

एलिटिक्स खोज .NET कोर और प्लेटफॉर्म के पुराने संस्करणों के लिए एक महान समर्थन के साथ आता है। आरंभ करने के लिए, नेस्ट एक आधिकारिक पुस्तकालय है जिसका उपयोग आपको एलिस्टिक्स खोज के साथ काम करते समय करना चाहिए। यह एक दृढ़ता से टाइप किए गए एपीआई के साथ आता है, जो कि इलास्टिक्स खोज क्वेरी डीएसएल के साथ एक-से-एक मैप करता है और पीओई के सहसंयोजक परिणामों और ऑटो मैपिंग जैसी विशिष्ट .NET सुविधाओं का लाभ उठाता है।

नेस्ट एक उच्च-स्तरीय ग्राहक है जो आंतरिक रूप से निम्न-स्तरीय Elasticsearch.Net का उपयोग करता है। यह NuGet के माध्यम से इंस्टॉलेशन के लिए उपलब्ध है।

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

साथ पालन करने के लिए, DevBlog नमूना परियोजना डाउनलोड करें, और डाउनलोड करें, स्थापित करें और Elasticsearch 5.1 चलाएं। (यह आलेख लिखे जाने के समय यह वर्तमान स्थिर संस्करण है।)

डेटा संगठन

हमें एक प्रकार घोषित करने की आवश्यकता होगी। प्रकार हमारी जानकारी के लिए संरचना की एक परिभाषा है जो खोज इंजन में आयोजित की जाएगी। आप SQL टेबल की तरह एक प्रकार के बारे में सोच सकते हैं। आपके सूचकांक में कई प्रकार हो सकते हैं।

हमें एक सूचकांक की आवश्यकता होगी। सूचकांक एक तार्किक नाम स्थान है जहां हमारे सभी प्रकार रहेंगे। यह SQL दुनिया में एक डेटाबेस के समान है।

हमारे वास्तविक रिकॉर्ड दस्तावेज हैं। दस्तावेज़ को JSON के रूप में संग्रहीत किया जाता है। हम केवल डेटा डालने जा रहे हैं जो टाइपिंग के मैपिंग से मेल खाता है।

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

.NET कोर प्रोजेक्ट एलेस्टिक्स खोज डेमो ट्यूटोरियल

आपकी परियोजना के लिए डेटा संरचना बनाना

क्योंकि नेस्ट एलिटिक्स सर्च प्रकारों के लिए POCO को ऑटो मैप करने में सक्षम है, इसलिए आपके प्रोजेक्ट डेटा संरचना को सेटअप करना वास्तव में आसान हो जाता है। सबसे पहले, हमें यह पता लगाना होगा कि हम किस तरह का डेटा स्टोर करने जा रहे हैं। अपने सूचकांक और प्रकारों का निर्माण करते समय यह पहला कदम है।

संरचित बनाम असंरचित खोज

संरचित (सटीक मान) और असंरचित (पूर्ण-पाठ) खोज के बीच अंतर को समझना वास्तव में महत्वपूर्ण है।

प्रत्यक्ष निष्पादन। पाठ के विश्लेषण के एक विशेष चरण को पारित किए बिना मुख्य अंतरों में से एक संरचित प्रश्नों को सीधे निष्पादित किया जाता है। वास्तविक पूर्ण-पाठ खोज को निष्पादित करने से पहले परिणाम सेट को कंघी करने के लिए उन्हें फिल्टर के रूप में उपयोग किया जाता है। (शायद सबसे अधिक, डेवलपर्स पहले हजारों या लाखों दस्तावेज़ों को ब्याज के सेट को कम करने के लिए फ़िल्टर करना चाहते हैं। उसके बाद, उस फ़िल्टर किए गए सेट पर एक पूर्ण-पाठ क्वेरी निष्पादित की जा सकती है।) इससे आपके क्वेरी प्रदर्शन में अत्यधिक सुधार होगा। याद रखें, फ़िल्टर कैश्ड होते हैं, और इसका अर्थ है कि फ़िल्टर निष्पादन तेज़ होगा।

हाँ / कोई परिणाम नहीं। संरचित डेटा को सटीक मान डेटा भी कहा जाता है। संरचित खोज के साथ, आपकी क्वेरी का परिणाम हमेशा हां या ना में होता है। कुछ या तो सेट में है, या यह नहीं है। संरचित खोज दस्तावेज़ की प्रासंगिकता या स्कोरिंग के बारे में चिंता नहीं करती है, इसमें केवल दस्तावेज़ शामिल हैं या शामिल नहीं हैं। पूर्ण-पाठ खोज में "अधिक समान" की कोई अवधारणा नहीं है।

संरचित डेटा में संख्या, बूलियन, दिनांक और कभी-कभी, जब समझ में आता है, पाठ शामिल होता है। सभी प्रकारों को सटीक मूल्यों के रूप में माना जाता है। Elasticsearch क्वेरी में पारित डेटा की तुलना आपके डेटा से करता है। परिणाम एक बूलियन "हाँ" होगा (यह मेल खाता है) या "नहीं" (यह नहीं है), एसक्यूएल मूल्यों की तुलना कैसे करता है। यदि कोई दस्तावेज़ संरचित क्वेरी से मेल खाता है, तो यह परिणाम सेट में शामिल है।

प्रासंगिकता। दूसरी ओर, असंरचित डेटा किसी भी मानव पाठ है। कंप्यूटर को संभालने के लिए मानव पाठ कठिन है। पूर्ण-पाठ खोज दुनिया के भीतर, आपकी खोज में लौटाए गए दस्तावेज़ कितने प्रासंगिक हैं, इसकी अवधारणा मौजूद है। इस प्रश्न का उत्तर दस्तावेज़ के स्कोर की गणना करके दिया गया है।

वाक्यांश या पाठ का निर्माण करते समय मानव भाषा के कई नियम हैं। इसे पूर्ण-पाठ के रूप में माना जाता है, और इसे सरल बनाने और इसे खोजने योग्य बनाने के लिए विशेष विश्लेषक लागू किए जाते हैं। इसका अर्थ है कि मूल पाठ को उल्टे सूचकांक में संग्रहीत किए जाने से पहले विशेष नियमों का पालन किया जाएगा। इस प्रक्रिया को "विश्लेषण चरण" कहा जाता है, और इसे सभी पूर्ण-पाठ क्षेत्रों पर लागू किया जाता है। अधिकांश विश्लेषण करने वालों की जरूरत पहले से ही एलिस्टिक्स खोज में परिभाषित की जाती है और "आउट-ऑफ-द-बॉक्स" आती है।

पाठ में "अंग्रेजी" विश्लेषक को लागू करते समय, "कुत्ते तेजी से चल रहे हैं।" इसके परिणामस्वरूप केवल शब्द - "कुत्ता", "रन" और "तेज" को अनुक्रमित किया जाएगा। कुछ वर्णों और शब्दों को हटा दिया जाएगा जैसे "", "और", "हैं" और "है" के साथ-साथ अल्पविराम और अवधि भी हैं क्योंकि वे वाक्यांश को कोई विशेष अर्थ नहीं देंगे। शेष शब्दों को नीचे उतारा जाएगा और उनके मूल रूप में परिवर्तित किया जाएगा। तो, "रनिंग" शब्द "रन" बन जाएगा।

पाठ, डिफ़ॉल्ट रूप से, पूर्ण-पाठ के रूप में माना जाता है, लेकिन कुछ मामलों में, इसे सटीक मान के रूप में माना जाता है और इसके लिए कोई भी परिवर्तन लागू नहीं होता है। यह आपके मॉडल में GUID का उपयोग करते समय लागू होता है। यदि फ़ील्ड "CreatedById" GUID का है, तो Elasticsearch के पास नक्शे के अनुरूप प्रकार नहीं है। इसे पाठ के रूप में अनुक्रमित किया जाना चाहिए। GUID की एक विशिष्ट संरचना है, और विश्लेषकों को लागू नहीं किया जाना चाहिए क्योंकि वे मूल पाठ को बदल देंगे।

किसी पाठ को सटीक मान मानने के लिए, आपको उसे स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है। यह आपके मॉडल वर्ग में Nest विशेषताओं का उपयोग करके किया जा सकता है। "CreatedById" संपत्ति देखें।

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

अन्यथा, यदि कीवर्ड को पूर्ण-पाठ के रूप में माना गया था, तो विश्लेषण लागू किया जाएगा और आपके GUID के परिणामस्वरूप टेक्स्ट में हटाए गए डैश, लोअरकेस अक्षर और अन्य परिवर्तनों के आधार पर परिणाम होगा कि क्या विश्लेषक का उपयोग किया गया था।

यदि मानक विश्लेषक के साथ एक पूर्ण-पाठ क्षेत्र के रूप में व्यवहार किया जाता है तो इसे अनुक्रमित किया जाएगा।

एक वास्तविक एप्लिकेशन में, आप अधिक संरचित डेटा और कम पूर्ण-पाठ डेटा का उपयोग करके खुद को पा सकते हैं। इस नमूना ब्लॉग अनुप्रयोग में, हमारे पास केवल एक डेटा प्रकार है - गैर संरचित (पूर्ण-पाठ) डेटा जो एक मानव पाठ, ब्लॉग पोस्ट होगा।

प्रकार बनाना

हमें एक जगह की जरूरत है जहां हम अपने पोस्ट और उनके टैग को स्टोर कर सकें। इस प्रकार को "पोस्ट" कहा जाएगा। Nest.Net हमारे लिए चीजों को वास्तव में आसान बनाता है। हमारे द्वारा आवश्यक डेटा प्रकारों की पहचान करने के बाद, हमें उस मॉडल का निर्माण करना चाहिए जिसका उपयोग एलिटिक्स खोज द्वारा किया जाएगा। यह प्रकार के मानचित्रण निर्माण पर बेहतर नियंत्रण रखने के लिए विशेषताओं के साथ सजाया गया एक POCO होगा। (यदि मैपिंग प्रदान नहीं की जाती है, तो एलिस्टिक्स खोज डेटा प्रकार का अनुमान लगाने की कोशिश करेगी)।

विशेषता [ElasticsearchType (नाम = "")] वर्ग को सजाने से उस प्रकार के नाम का संकेत मिलता है जो इस ऑब्जेक्ट का प्रतिनिधित्व करता है। अब जब हमने प्रकार घोषित कर दिया है, तो सूचकांक बनाने और इलास्टिक्स की खोज करने का समय आ गया है।

सूचकांक बनाना

सूचकांक बनाना वास्तव में आसान है। हमारे प्रकार के क्षेत्रों को स्वचालित किया जाएगा। कोड का अगला भाग कस्टम ElasticClient का हिस्सा है।

जहाँ _indexName = "ब्लॉग" और URI एड्रेस "http: // localhost: 9200" एलिटिक्स खोज का डिफ़ॉल्ट पता है। हम Nest.ElasticClient के एक उदाहरण को उस पैरामीटर से गुजरते हुए वापस कर रहे हैं।

सूचकांक बनाते समय डिफ़ॉल्ट सेटिंग्स का उपयोग किया जा सकता है। लेकिन चूंकि हम एक एकल नोड पर एलिटिक्स खोज कर रहे हैं, और यह वितरित वातावरण में नहीं है, इसलिए मैं 0 और सटीक नंबर बढ़ाने के लिए नंबर_ऑफ_शर्ड्स को 1 पर सेट करने की सलाह देता हूं और नंबर_ऑफ_प्लीसिस्क को 0 पर सेट करता हूं क्योंकि हम दूसरे नोड पर डेटा को पूरा नहीं कर सकते।

यह सुनिश्चित करने के लिए कि आवेदन हमेशा एलिटिक्स खोज के बारे में है, हम प्रोजेक्ट Startup.cs फ़ाइल में ElasticClient.Initialize () का कॉल जोड़ने जा रहे हैं। इस तरह, हर आरंभिक आवेदन शुरू होने पर, यह जांचा जाएगा कि क्या सूचकांक मौजूद है। यदि नहीं, तो यह बनाया जाएगा। अन्यथा, डेटा को ओवरराइड नहीं किया जाएगा। एप्लिकेशन को चलाने के बाद, हम यह जांच सकते हैं कि एलिस्टिक्स खोज पते + इंडेक्स नाम और _mappings समापन बिंदु का उपयोग करके क्या बनाया गया है।

सूचकांक सफलतापूर्वक बनाया गया है और यह उपयोग के लिए तैयार है।

इंडेक्सिंग, रिइंडेक्सिंग और एक दस्तावेज को हटाना

इस संदर्भ में इंडेक्सिंग का अर्थ है एक इंडेक्स में एक दस्तावेज को संग्रहीत करना। अगला, हमें पोस्ट बनाने या संपादित किए जाने के बाद एलिटेसर्च में दस्तावेज़ों को अनुक्रमित करना शुरू करना चाहिए। एडिट ऑपरेशन केवल एक मौजूदा डॉक्यूमेंट को रीइंन्डेक्स कर रहा है जो मौजूदा को ओवरराइड करेगा।

पोस्ट को सहेजने / संपादित करने के बाद हम परिवर्तनों को नोट करने के लिए इसे एलेस्टिक्स में अनुक्रमित करने जा रहे हैं।

_elasticService.IndexData () PostModel को PostType में मैप करता है, जो एक प्रकार है जिसे एलीस्टेसर्च की जानकारी है। फिर यह सम्मिलित करें (दस्तावेज़) विधि को कॉल करके परिवर्तनों को अनुक्रमित करने के लिए ElasticClient का उपयोग करता है।

आप अपनी पसंद के किसी अन्य क्लाइंट में GET क्वेरी "http: // localhost: 9200 / blog / post / _search" को निष्पादित करके संग्रहीत डेटा का पता लगा सकते हैं। जहाँ ब्लॉग आपका इंडेक्स नाम है, पोस्ट टाइप नाम है और _search एक अंतिम बिंदु है जो आपको डीएसएल प्रश्नों को निष्पादित करने की अनुमति देता है। परिणाम यह एक के समान होगा।

जैसा कि हम देख सकते हैं, प्रतिक्रिया मेटाडेटा प्रदान करती है जो यह जानकारी देती है कि क्वेरी निष्पादन (मिलीसेकंड में) कितने समय में, कितने दस्तावेज़ वापस किए गए हैं, हिट फ़ील्ड में वास्तविक दस्तावेज़ और अन्य उपयोगी जानकारी।

संग्रहीत डेटा प्राप्त करने के लिए अपनी DSL क्वेरी का निर्माण करना

DSL क्वेरी का निर्माण गतिशील रूप से इस बात पर निर्भर करेगा कि खोज क्षेत्र में कितने शब्द प्रदान किए गए हैं। नेस्ट आपको एलीस्टेसर्च डीएसएल क्वेरी के साथ वन-टू-वन मैप करने के लिए एपीआई देता है।

उदाहरण मैच क्वेरी में प्रयुक्त उच्च स्तरीय क्वेरी है और यह फ़ील्ड मैपिंग को समझता है। यह आमतौर पर इस्तेमाल किया जाता है। मल्टी_मैच क्वेरी कई क्षेत्रों पर मैच क्वेरी निष्पादित करने का तरीका है।

एक खोज क्वेरी निम्नानुसार बनाई गई है:

हम ब्लॉग पोस्ट के सभी तीन क्षेत्रों पर पूर्ण-पाठ खोज कर रहे हैं, जो खोज क्षेत्र से दिए गए प्रत्येक शब्द के साथ है। मिलान किए गए दस्तावेज़ों के स्कोर को योग करने और प्रतिक्रिया की सटीकता बढ़ाने के लिए बहु_match क्वेरी का प्रकार अधिकांश_फिल्ड्स पर सेट है।

यह क्वेरी ठीक काम करेगी, लेकिन क्या होगा यदि मैं एक अधिक सटीक क्वेरी निष्पादित करना चाहता हूं और यह कहना चाहता हूं कि ब्लॉग पोस्ट का शीर्षक आपकी सामग्री से अधिक महत्वपूर्ण है? मुझे अपनी क्वेरी को बढ़ावा देने की आवश्यकता है।

अपनी क्वेरी को बूस्ट करना

अपने प्रश्नों को बढ़ावा देने से आप अपने कुछ क्षेत्रों को अधिक महत्व दे सकते हैं। मैं खेतों को अलग-अलग बढ़ावा मूल्य प्रदान करके क्वेरी के निर्माण की सलाह देता हूं। डिफ़ॉल्ट रूप से, प्रत्येक फ़ील्ड में 1 का बढ़ावा होता है, जिसका अर्थ है कि सभी फ़ील्ड समान रूप से महत्वपूर्ण हैं। आप एक नंबर प्रदान करके इसे बदल सकते हैं। बूस्ट पैरामीटर डबल प्रकार का है।

शीर्षक फ़ील्ड अब ब्लॉग पोस्ट की सामग्री से 3 गुना अधिक महत्वपूर्ण है। महत्व के आधार पर, 2 की वृद्धि के साथ टैग फ़ील्ड है।

यह उन दस्तावेजों को अधिक वजन देगा जो उनके शीर्षक क्षेत्र में खोजे गए शब्द से मेल खाते हैं, टैग क्षेत्र से मेल खाते समय कम वजन और सामग्री से मेल खाते समय कम। क्वेरी के परिणाम सेट का निर्माण दस्तावेजों को उनके स्कोर के अनुसार क्रमबद्ध करके किया जाएगा। इस तरह, अधिक प्रासंगिक दस्तावेज सेट परिणाम के शीर्ष पर छांटे जाते हैं।

अंतिम लक्ष्य पहले पृष्ठ पर शीर्ष 5 परिणामों में सबसे अधिक प्रासंगिक दस्तावेजों को प्रदर्शित करना है और आदर्श रूप से दूसरे पृष्ठ पर जाने की आवश्यकता नहीं है।

परिणाम खोजें

अब हम क्वेरी को निष्पादित कर सकते हैं और उस मॉडल की प्रतिक्रिया को मैप कर सकते हैं जो दृश्य में वापस आ जाएगी।

वैरिएबल dslQuery डीबगिंग उद्देश्यों के लिए मौजूद है और आपको कच्ची डीएसएल क्वेरी प्रदान करता है जिसे एलिटिक्सखोज के खिलाफ निष्पादित किया गया है।

प्रतिक्रिया प्रकार IS ISResponse की है और इसमें संपत्ति हिट्स है जिसमें सभी मिलान किए गए दस्तावेज़ों को उनके स्कोर द्वारा क्रमबद्ध किया गया है। स्रोत फ़ील्ड में वास्तविक दस्तावेज़ का डेटा पाया जाता है।

अंतिम चरण दृश्य में निष्पादित खोज क्वेरी के परिणाम को प्रदर्शित करना है।

कुशल सूचकांक डेटा

इस लेख में, हम यह पता लगाते हैं कि आपकी परियोजनाओं में एलिटिक्स खोज को कैसे शामिल किया जाए। यह आपकी व्यावसायिक आवश्यकताओं के अनुसार धुनों को ठीक करने की क्षमता प्रदान करता है और आपके लक्ष्यों को प्राप्त करने के लिए जटिल परिदृश्यों को कवर करता है।

सॉफ्टवेयर विकास में, दुनिया में कुछ खोज इंजन और SQL इंजन हैं जो पूर्ण-पाठ खोज के लिए समर्थन प्रदान करते हैं। नीचे दिए गए अतिरिक्त लिंक संसाधनों को पहचानने में आपकी सहायता करेंगे जो आपकी आवश्यकताओं को पूरा करेंगे।

  • http://db-engines.com/en/system/Elasticsearch%3BMicrosoft+SQL+Server%3BSolr%3BSphinx
  • https://www.slant.co/topics/95/~best-search-engines-for-web-applications
  • https://sematext.com/blog/2015/01/30/solr-elasticsearch-comparison/
  • http://logz.io/blog/solr-vs-elasticsearch/

अब आपके पास अपने डेटा को अनुक्रमित करना शुरू करने और बहुत ही कुशल तरीके से गहरी खोज करने में सक्षम होने की आवश्यकता है। आज के लिए Elasticsearch का उपयोग करना शुरू करें।

हमारे साथ नया करें। हमारे सभी मुफ़्त संसाधनों तक पहुँचने के लिए यहाँ क्लिक करें।
मार्टिन दिमित्रोव द्वारा लिखित।

यह सभी देखें

केवल वेब या इंटरनेट से कुछ पैसे कैसे कमाए जा सकते हैं? मैं Quora जैसी वेबसाइट कैसे सेट कर सकता हूं? आवश्यक प्रोग्रामिंग कौशल क्या हैं?मुझे एक शुरुआत के लिए एक अच्छी विकास टीम कैसे मिल सकती है? मोबाइल संरचनाओं के अनुकूल होने के लिए आप HTML संरचनाओं के साथ अपना वेबपेज कैसे सेट करते हैं? मुझे किन कोडों को जोड़ना चाहिए?केवल ग्राफिक डिज़ाइन अनुभव, कोई कोडिंग अनुभव के साथ वेब डेवलपमेंट कोडिंग जॉब पाना कितना आसान है? CreditSesame जैसी वेबसाइट बनाने में कितना खर्च आएगा? प्रारंभिक टीम वेब साइट को सेट करने में कितना समय लगता है? मैं अपनी वेबसाइट का समग्र रूप कैसे बदलूं? मेरे पास पहले से ही एक वेबसाइट है जिसे मैंने बहुत पहले बनाया था।