खोज इंजन अनुक्रमण
फास्ट और सटीक की सुविधा के लिए खोज इंजन ऑप्टिमाइज़ेशन इंडेक्सिंग एकत्रित, पार्स, और डेटा संग्रहीत करता है। इंडेक्स डिज़ाइन भाषा विज्ञान, संज्ञानात्मक मनोविज्ञान, गणित, सूचना विज्ञान और कंप्यूटर विज्ञान से अंतःविषय अवधारणाओं को शामिल करता है। इंटरनेट पर वेब पेज खोजने के लिए डिज़ाइन किए गए खोज इंजन के संदर्भ में प्रक्रिया का एक वैकल्पिक नाम है।
लोकप्रिय इंजन ऑनलाइन, प्राकृतिक भाषा दस्तावेजों के पूर्ण-पाठ अनुक्रमण पर ध्यान केंद्रित करते हैं। जैसे वीडियो, ऑडियो और ग्राफिक्स भी खोज योग्य हैं।
एक इंडेक्स को संग्रहीत करने का उद्देश्य खोज क्वेरी के लिए प्रासंगिक दस्तावेज़ खोजने में गति और प्रदर्शन का अनुकूलन करना है। इंडेक्स के बिना, खोज इंजन कॉर्पस में प्रत्येक दस्तावेज़ को स्कैन करेगा, जिसके लिए काफी समय और कंप्यूटिंग शक्ति की आवश्यकता होगी। उदाहरण के लिए, जबकि 10,000 दस्तावेजों के सूचकांक को मिलीसेकंड के भीतर क्वेर किया जा सकता है, 10,000 बड़े दस्तावेजों में हर शब्द के क्रमिक स्कैन में घंटों लग सकते हैं। अनुक्रमणिका को संग्रहीत करने के लिए आवश्यक अतिरिक्त , साथ ही अद्यतन करने के लिए आवश्यक समय में काफी वृद्धि, सूचना पुनर्प्राप्ति के दौरान सहेजे गए समय के लिए बंद कर दिया जाता है।
खोज इंजन की वास्तुकला को डिजाइन करने में प्रमुख कारकों में शामिल हैं:
डेटा इंडेक्स में कैसे प्रवेश करता है, या टेक्स्ट कॉरपस ट्रैवर्सल के दौरान इंडेक्स में शब्दों और विषय की विशेषताओं को कैसे जोड़ा जाता है, और क्या एकाधिक इंडेक्सर्स अतुल्यकालिक रूप से काम कर सकते हैं। इंडेक्सर को पहले जांचना होगा कि वह पुरानी सामग्री को अपडेट कर रहा है या नई सामग्री जोड़ रहा है। ट्रैवर्सल आमतौर पर नीति से संबंधित है। खोज इंजन सूचकांक विलय कमांड और अन्य मर्ज एल्गोरिदम की अवधारणा के समान है।
इंडेक्स को कैसे स्टोर करना है, अर्थात जानकारी को संपीड़ित या फ़िल्टर किया जाना चाहिए।
सूचकांक का समर्थन करने के लिए की कितनी आवश्यकता है।
में एक शब्द को कितनी जल्दी पाया जा सकता है। डेटा संरचना में एक प्रविष्टि खोजने की गति, इसकी तुलना में कितनी जल्दी इसे अपडेट या हटाया जा सकता है, कंप्यूटर विज्ञान का एक केंद्रीय ध्यान केंद्रित है।
समय के साथ सूचकांक को कैसे बनाए रखा जाता है।
सेवा के लिए विश्वसनीय होना कितना महत्वपूर्ण है। मुद्दों में सूचकांक भ्रष्टाचार से निपटना, यह निर्धारित करना शामिल है कि क्या खराब डेटा को अलगाव में माना जा सकता है, खराब हार्डवेयर से निपटने, विभाजन, और हैश-आधारित या समग्र विभाजन जैसी योजनाओं, के साथ-साथ प्रतिकृति भी।
खोज इंजन आर्किटेक्चर विभिन्न डिज़ाइन कारकों को पूरा करने के लिए इंडेक्सिंग के तरीके और इंडेक्स स्टोरेज के तरीकों में भिन्न होते हैं। एक पेड़ की तरह संरचनात्मक रूप से संरचित, रैखिक समय देखने का समर्थन करता है। शब्दों के प्रत्ययों को संग्रहित करके निर्मित। प्रत्यय वृक्ष एक प्रकार का है। ट्राइसेबल हैशिंग का समर्थन करता है, जो खोज इंजन अनुक्रमण के लिए महत्वपूर्ण है। डीएनए अनुक्रमों और क्लस्टरिंग में पैटर्न खोजने के लिए उपयोग किया जाता है। एक बड़ी कमी यह है कि पेड़ में किसी शब्द को संग्रहीत करने के लिए उस स्थान से परे जगह की आवश्यकता हो सकती है जो शब्द को स्वयं संग्रहित करने के लिए आवश्यक हो। एक वैकल्पिक प्रतिनिधित्व एक प्रत्यय सरणी है, जिसे कम आभासी मेमोरी की आवश्यकता माना जाता है और एल्गोरिथ्म जैसे डेटा संपीड़न का समर्थन करता है। प्रत्येक परमाणु खोज मानदंड की घटनाओं की सूची को संग्रहीत करता है, आमतौर पर हैश टेबल या बाइनरी ट्री के रूप में। ग्रंथों के विश्लेषण के समर्थन के लिए दस्तावेजों के बीच भंडार उद्धरण या हाइपरलिंक, ग्रंथ सूची का विषय। अन्य प्रकार की पुनर्प्राप्ति या पाठ खनन का समर्थन करने के लिए डेटा की लंबाई के अनुक्रम। अव्यक्त अर्थ विश्लेषण में प्रयुक्त, द्वि-आयामी विरल मैट्रिक्स में दस्तावेजों में शब्दों की घटनाओं को संग्रहीत करता है।
खोज इंजन के डिजाइन में एक बड़ी चुनौती सीरियल कंप्यूटिंग प्रक्रियाओं का प्रबंधन है। और सुसंगत दोषों के लिए कई अवसर हैं। उदाहरण के लिए, कॉर्पस में एक नया दस्तावेज़ जोड़ा गया है और सूचकांक को अद्यतन किया जाना चाहिए, लेकिन सूचकांक को खोज प्रश्नों का जवाब देना जारी रखना होगा। यह दो प्रतिस्पर्धी कार्यों के बीच टकराव है। विचार करें कि लेखक जानकारी के निर्माता हैं, और एक वेब क्रॉलर इस जानकारी का उपभोक्ता है, पाठ को हथियाने और इसे कैश (या कॉर्पस) में संग्रहीत करता है। फॉरवर्ड इंडेक्स कॉर्पस द्वारा निर्मित जानकारी का उपभोक्ता है, और उलटा इंडेक्स फॉरवर्ड इंडेक्स द्वारा निर्मित जानकारी का उपभोक्ता है। इसे आमतौर पर निर्माता-उपभोक्ता मॉडल के रूप में जाना जाता है। इंडेक्स खोज करने योग्य जानकारी का उत्पादक है और उपयोगकर्ता ऐसे उपभोक्ता हैं जिन्हें खोज करने की आवश्यकता है। वितरित भंडारण और वितरित प्रसंस्करण के साथ काम करने पर चुनौती बढ़ जाती है। बड़ी संख्या में अनुक्रमित सूचनाओं के साथ पैमाने पर करने के प्रयास में, खोज इंजन की वास्तुकला में शामिल हो सकती है, जहां खोज इंजन में कई मशीनें होती हैं, जो एक साथ काम करती हैं। यह असंगति के लिए संभावनाओं को बढ़ाता है और पूरी तरह से सिंक्रनाइज़, वितरित, समानांतर वास्तुकला बनाए रखने के लिए और अधिक कठिन बनाता है।
कई खोज इंजन एक उल्टे सूचकांक को शामिल करते हैं जब किसी प्रश्न में शब्दों से युक्त दस्तावेज़ों का शीघ्र पता लगाने के लिए खोज क्वेरी का मूल्यांकन करते हैं और फिर प्रासंगिकता से इन दस्तावेजों को रैंक करते हैं। क्योंकि प्रत्येक शब्द वाले दस्तावेज़ों की एक सूची संग्रहीत करता है, खोज इंजन सीधे का उपयोग कर सकता है ताकि क्वेरी में प्रत्येक शब्द से जुड़े दस्तावेज़ों को मिलान दस्तावेजों को जल्दी से पुनः प्राप्त कर सकें।
यह सूचकांक केवल यह निर्धारित कर सकता है कि कोई शब्द किसी विशेष दस्तावेज़ के भीतर मौजूद है, क्योंकि यह शब्द की आवृत्ति और स्थिति के बारे में कोई जानकारी संग्रहीत नहीं करता है; इसलिए इसे बूलियन इंडेक्स माना जाता है। ऐसा सूचकांक निर्धारित करता है कि कौन से दस्तावेज़ किसी प्रश्न से मेल खाते हैं लेकिन मिलान किए गए दस्तावेज़ों को रैंक नहीं करते हैं। कुछ डिज़ाइनों में सूचकांक में अतिरिक्त जानकारी शामिल होती है जैसे प्रत्येक दस्तावेज़ में प्रत्येक शब्द की आवृत्ति या प्रत्येक दस्तावेज़ में किसी शब्द की स्थिति। पद जानकारी वाक्यांशों की खोज के समर्थन के लिए शब्द निकटता की पहचान करने के लिए खोज एल्गोरिथ्म को सक्षम करती है; क्वेरी के लिए दस्तावेजों की प्रासंगिकता को रैंकिंग में मदद करने के लिए आवृत्ति का उपयोग किया जा सकता है। इस तरह के विषय सूचना पुनर्प्राप्ति का केंद्रीय अनुसंधान फोकस हैं।
उलटा सूचकांक एक विरल मैट्रिक्स है, क्योंकि प्रत्येक दस्तावेज़ में सभी शब्द मौजूद नहीं हैं। आवश्यकताओं को कम करने के लिए, इसे दो आयामी सरणी से अलग तरीके से संग्रहीत किया जाता है। सूचकांक अव्यक्त द्वारा नियोजित टर्म मैट्रिसेस के समान है। उल्टे सूचकांक को हैश टेबल का रूप माना जा सकता है। कुछ मामलों में सूचकांक एक द्विआधारी पेड़ का एक रूप है, जिसे अतिरिक्त भंडारण की आवश्यकता होती है, लेकिन लुकअप समय को कम कर सकता है। बड़े सूचकांकों में वास्तुकला आमतौर पर एक वितरित हैश तालिका है।
उलटा सूचकांक एक मर्ज या पुनर्निर्माण के माध्यम से भरा हुआ है। एक पुनर्निर्माण एक मर्ज के समान है लेकिन पहले उल्टे सूचकांक की सामग्री को हटा देता है। आर्किटेक्चर को वृद्धिशील अनुक्रमण का समर्थन करने के लिए डिज़ाइन किया जा सकता है, जहां एक मर्ज दस्तावेज़ या दस्तावेज़ों को जोड़ने या अद्यतन करने की पहचान करता है और फिर प्रत्येक दस्तावेज़ को शब्दों में दर्ज करता है। तकनीकी सटीकता के लिए, एक मर्ज नए अनुक्रमित दस्तावेजों को आम तौर पर वर्चुअल मेमोरी में रहता है, जिसमें एक या अधिक कंप्यूटर हार्ड ड्राइव पर इंडेक्स कैश का निवास होता है।
पार्स करने के बाद, इंडेक्सर संदर्भित दस्तावेज़ को उचित शब्दों के लिए दस्तावेज़ सूची में जोड़ता है। एक बड़े खोज इंजन में, प्रत्येक शब्द को उल्टे सूचकांक में खोजने की प्रक्रिया (यह रिपोर्ट करने के लिए कि यह किसी दस्तावेज़ के भीतर हुआ है) में बहुत अधिक समय लग सकता है, और इसलिए इस प्रक्रिया को आमतौर पर दो भागों में विभाजित किया जाता है, एक का विकास फॉरवर्ड इंडेक्स और एक प्रक्रिया जो फॉरवर्ड इंडेक्स की सामग्री को उल्टे इंडेक्स में क्रमबद्ध करती है। उल्टे सूचकांक को इसलिए नाम दिया गया है क्योंकि यह फॉरवर्ड इंडेक्स का उलटा है।
फॉरवर्ड इंडेक्स प्रत्येक दस्तावेज़ के लिए शब्दों की एक सूची संग्रहीत करता है। आगे सूचकांक को विकसित करने के पीछे तर्क यह है कि जैसे ही दस्तावेजों को पार्स किया जाता है, प्रति दस्तावेज शब्दों को तुरंत संग्रहीत करना बेहतर होता है। परिसीमन अतुल्यकालिक प्रणाली प्रसंस्करण को सक्षम करता है, जो आंशिक रूप से उल्टे सूचकांक अद्यतन अड़चन को दरकिनार करता है। अग्रेषित सूचकांक को उल्टे सूचकांक में बदलने के लिए किया जाता है। फॉरवर्ड इंडेक्स अनिवार्य रूप से उन डॉक्यूमेंट्स की एक सूची है, जो डॉक्यूमेंट से टकराकर डॉक्यूमेंट और वर्ड से मिलकर बनता है। फॉरवर्ड इंडेक्स को उल्टे इंडेक्स में बदलना केवल शब्दों द्वारा जोड़े को छांटने की बात है। इस संबंध में, उलटा सूचकांक एक शब्द-सॉर्ट किया गया आगे का सूचकांक है।
बड़े पैमाने पर खोज इंजन इंडेक्स बनाना या बनाए रखना एक महत्वपूर्ण भंडारण और प्रसंस्करण चुनौती का प्रतिनिधित्व करता है। कई खोज इंजन पर सूचकांकों के आकार को कम करने के लिए संपीड़न के एक रूप का उपयोग करते हैं। एक पूर्ण पाठ, इंटरनेट खोज इंजन के लिए निम्नलिखित परिदृश्य पर विचार करें।इस परिदृश्य को देखते हुए, 2 बिलियन वेब पृष्ठों के लिए एक असम्पीडित सूचकांक (एक गैर-अनुमानित, सरल, अनुक्रमणिका मानते हुए) को 500 बिलियन शब्द प्रविष्टियों को संग्रहीत करने की आवश्यकता होगी। प्रति वर्ण 1 बाइट, या 5 बाइट प्रति शब्द, इसके लिए अकेले 2500 गीगाबाइट संग्रहण स्थान की आवश्यकता होगी। यह स्थान की आवश्यकता एक दोष-सहिष्णु वितरित भंडारण वास्तुकला के लिए और भी बड़ी हो सकती है। चुनी गई संपीड़न तकनीक के आधार पर, सूचकांक को इस आकार के एक अंश तक कम किया जा सकता है। Tradeoff संपीड़न और विघटन करने के लिए आवश्यक समय और प्रसंस्करण शक्ति है।
विशेष रूप से, बड़े पैमाने पर खोज इंजन डिजाइन में भंडारण की लागत के साथ-साथ भंडारण को बिजली देने के लिए बिजली की लागत शामिल होती है। इस प्रकार संपीड़न लागत का एक उपाय है।