हार्ड-ड्राइव खोज की तुलना में Google इतना तेज़ क्यों है?


251

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

Google के लिए इंटरनेट पर खोज करना कैसे संभव है, जो कि मेरी हार्ड ड्राइव से कई गुना बड़ा है, मेरे ओएस से तेज मेरा कंप्यूटर खोज सकता है? क्या यह केवल कंप्यूटिंग शक्ति और सही एल्गोरिदम की बात है?


99
क्या आपने अपने ड्राइव पर सभी फाइलों को अनुक्रमित करने और केवल इंडेक्स को खोजने की कोशिश की है? सब कुछ कोशिश करो और देखो।
करण

11
Google डेस्कटॉप ने विंडोज़ के लिए भी ऐसा करने के लिए "उपयोग" किया है ...
rogerdpack

14
Google रैम में संग्रहीत सूचकांकों के माध्यम से खोज करता है, हार्ड ड्राइव पर फाइलों के माध्यम से नहीं।
अरी

13
सूचकांक महत्वपूर्ण है, लेकिन Google ऑपरेशन के व्यापक समानांतर सेट का संचालन करने के लिए मैप-कम एल्गोरिदम का भी उपयोग करता है। आपके कंप्यूटर में चाहे कितने भी कोर हों, मैं गारंटी देता हूं कि Google के पास अधिक है।
एडम वूरल

41
इंडेक्सिंग का उपयोग करने से डेस्कटॉप खोज कार्यान्वयन को रोकने के लिए कुछ भी नहीं है। हालाँकि , याद रखें कि Google के पास) क्वेरी के समानांतर करने के लिए बहुत तेज़ सीपीयू / सर्वर के लिए पर्याप्त नकदी है; ख) बहुत तेज रैम के बहुत से कभी एक डिस्क का उपयोग करने से बचने के लिए; ग) आपके द्वारा उपयोग किए जाने वाले की तुलना में बहुत अधिक हार्ड ड्राइव; d) बहुत सारे स्मार्ट इंजीनियर शामिल एल्गोरिदम का अनुकूलन करने के लिए। (उदाहरण के लिए (बहुत अधिक) अक्सर और अक्सर पूछे जाने वाले प्रश्नों के लिए (बहुत अधिक) परिणामों को कैशिंग करते हैं। यह दोनों में से केवल एक "सवाल" ही नहीं है, यह इन सभी का अभिनय है।
मिलीमोसे

जवाबों:


211

Google इंटरनेट नहीं खोज रहा है: यह एक सूचकांक खोज रहा है। Google के पास विशाल सर्वर फ़ार्म हैं जो लगातार इंटरनेट को स्कैन और इंडेक्स कर रहे हैं। इस प्रक्रिया में बहुत समय लगता है, ठीक वैसे ही जैसे कि आपकी अनइंडैक्स की गई हार्ड ड्राइव। विंडोज 7 में, आपकी हार्ड ड्राइव को इंडेक्स करने का विकल्प है। इस प्रक्रिया में पहली बार कुछ समय लगता है लेकिन एक बार यह हो जाता है और खोज के परिणाम चलाना तात्कालिक होगा।

यदि आप इस बारे में अधिक जानना चाहते हैं कि Google खोज कैसे काम करती है तो आप Google के लेख " हाउ सर्च वर्क्स " को पढ़ सकते हैं या " हाउ स्टफ वर्क्स: हाउ गूगल वर्क्स " लेख को पढ़ सकते हैं ।


46
अंतिम पैराग्राफ: यह लिंक अधिक आधिकारिक और समग्र रूप से बेहतर है।
ulidtko

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

9
@ Adnan फ़ाइल सिस्टम इंडेक्स को उस स्थिति का पता लगाने के लिए डिज़ाइन किया गया है जहाँ एक फ़ाइल को भौतिक मीडिया पर संग्रहीत किया जाता है। यह एक पुस्तक के सूचकांक की तरह है जो आपको बताता है कि किस पृष्ठ पर एक अध्याय शुरू होता है। एक खोज सूचकांक सामग्री खोजने के लिए डिज़ाइन किया गया है। एक अच्छा खोज अनुक्रमणिका न केवल एक फ़ाइल नाम को अनुक्रमित करता है, बल्कि पीडीएफ, डॉक, एचटीएमएल जैसे ... शब्द "ऑटोमोबाइल"।
साइमन

3
@ अदनान, फ़ाइल सिस्टम वास्तव में "इंडेक्स" नहीं है, बस फ़ाइल नामों का एक पेड़ है। ऐसे पेड़ की खोज करना तेज़ नहीं है, क्योंकि यह संरचना खोज के लिए अनुकूलित नहीं है। OTOH google (और डेटाबेस) विशिष्ट सॉर्ट किए गए इंडेक्स स्ट्रक्चर्स का उपयोग करता है जो विशेष रूप से एंट्री लाइटनिंग फास्ट के लिए लुकअप करता है। फिर भी, सभी खोजों को इस तरह के सूचकांक से लाभ नहीं मिल सकता है और यह धीमा (एर) होगा।
PiRX

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

71

Google एक पते (अनुक्रमित) के लिए पीले पन्नों की खोज करने जैसा है। विंडोज सर्च इमारतों (गैर-अनुक्रमित) पर संख्याओं की जाँच के आसपास ड्राइविंग करने के लिए एक समान है।

एक और सादृश्य एक अच्छी तरह से आयोजित पुस्तकालय और कार्ड कैटलॉग के माध्यम से देख रहा होगा, या हर बार पुस्तकों के एक असंगठित ढेर के माध्यम से छंटनी करेगा।

मूल रूप से यह खोज से पहले किए गए सभी संगठनात्मक कार्य हैं जो इसे तेज बनाता है।

FYI करें: अनुक्रमित स्थानों की खोज करते समय, विंडोज़ की खोज बस के रूप में उत्तरदायी हो सकती है।


5
या: एक पाठ्यपुस्तक स्कैन करना बनाम सामग्री की एक (विस्तृत) तालिका में
देखना

36

Google का व्यवसाय खोज (और विज्ञापनों की सेवा करना) है और यह उस पर बहुत केंद्रित है। Google द्वारा डेटा को सुनिश्चित करने के लिए कई चीजें हैं जो आपके लिए बहुत तेजी से वापस आती हैं:

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

हाउ सर्च वर्क्स के बारे में अधिक जानकारी के लिए यह लिंक देखें

सूचकांक के बिना तुलनात्मक रूप से हार्ड ड्राइव की खोज को ड्राइव पर हर फ़ाइल के माध्यम से पढ़ना पड़ता है और इसमें बहुत समय लग सकता है।

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


30

लगभग 4 साल पहले मैंने भी खुद से यही सवाल किया था। लेकिन जैसा कि मैंने अपने शोध को करने के बारे में जाना, मैंने अंततः पढ़ा कि इस तथ्य के अलावा कि वे सबसे अधिक परिष्कृत खोज एल्गोरिदम और उन सभी के साथ आने के लिए सबसे अच्छे को किराए पर लेते हैं।

उनके द्वारा उपयोग किए जाने वाले प्रमुख डिज़ाइन में से एक मानचित्र के विचार के समान है जो मुझे लगता है कि कम हो गया है। आपके पास खेतों पर बहुत सारे सस्ते कंप्यूटर हैं। बता दें कि इन कंप्यूटरों में लगभग 80 गीग हार्ड डिस्क की जगह होती है और इन कंप्यूटरों पर (लगभग जितना संभव हो) 16 गिग रैम या इससे भी बेहतर 32 गिग रैम रखने के लिए कड़ी मेहनत करनी चाहिए। याद रखें कि वे डिज़ाइन किए गए कुछ परिष्कृत सिस्टम के माध्यम से जुड़े हुए हैं। लेकिन यहां मुख्य विचार यह है कि जब कोई क्वेरी सबमिट की जाती है, तो यह उनके सिस्टम में पारित हो जाता है जहां यह रैम में ताज़ा डेटा को खोजने और खोजने की कोशिश करेगा। ध्यान रखें कि उनके पास इन सस्ते कंप्यूटरों की भरमार है। और चूंकि डेटा रैम में है, यह हार्ड डिस्क पर होने की तुलना में बहुत तेज पाया जाता है। लेकिन यह मत भूलो कि उनके पास एक परिष्कृत (अनुक्रमण और उन सभी एल्गोरिदम) प्रणाली भी है जो बहुत मदद करते हैं।

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

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

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

बेशक मैं गलत हो सकता हूं, लेकिन इससे मुझे समझ में आया। और जो मैंने सीखा उससे मैं खुश था।


7
आपने इसे कुछ ऐसी चीजों पर आधारित किया है जो अन्य, अधिक लोकप्रिय पोस्टर से चूक गए। Google अक्सर सब कुछ नहीं खोजता है। निश्चित रूप से पूरे इंटरनेट पर नहीं, और अपने स्वयं के कैश में भी सब कुछ नहीं। इसके अलावा, जब आप Google.com पर खोज करते हैं, तो वास्तविक खोज वास्तविक समय में नहीं हो रही है, बस एक त्वरित प्रतिलिपि और उन खोज परिणामों को प्रदर्शित करना है जो Google द्वारा पिछले महीनों में पहले ही उत्पादित और व्यवस्थित किए गए हैं। निर्माण / आयोजन प्रक्रिया का वर्णन करना बेहद जटिल है, लेकिन जैसा कि किसी ने कहा, इसे अस्पष्ट रूप से "अनुक्रमण" कहा जा सकता है।
जोसफ मायर्स

यह उत्पादन / आयोजन प्रक्रिया का वर्णन करने अत्यंत जटिल है ... । हां, यही मैं इसके परिष्कृत भाग के रूप में संदर्भित करता हूं। अंगूठे, आप इसे अच्छी तरह से संक्षेप में प्रस्तुत करते हैं।
स्पर्श करें

1
@JosephMyers गूगल लगातार अनुक्रमित करता है। सुपरयूज़र पर पहले दिन में पूछे गए एक प्रश्न (जैसे। google.com/search?q=google+faster+than+a+hard+drive ) पर एक खोज करें और यह परिणामों में दिखाई देता है।
ब्रैड पैटन

@ टच मैं रैम में खोजों के बारे में सहमत हूं। कैशिंग के बारे में मेरी पोस्ट में यह चौथा बिंदु था
ब्रैड पैटन

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

20

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


4

2004 में, कुछ Google कर्मचारियों ने एक पेपर प्रकाशित किया: MapReduce और उस समय से उन्होंने उस सैकड़ों बार सुधार किया।

इसके अलावा, वे Google फ़ाइल सिस्टम (GFS) का उपयोग करते हैं जो कि Hadoop Distribud फ़ाइल सिस्टम (HDFS) की तरह वितरित फ़ाइल सिस्टम है और अपने उद्देश्यों के लिए बेहद अनुकूलित है। जहाँ तक मुझे पता है, जीएफएस एचडीएफएस की तुलना में हजार गुना तेज काम करता है ।


2

मैंने सोचा कि मैं इससे जुड़ जाऊंगा क्योंकि मुझे भी यह सवाल कुछ समय पहले आया था और इन बेहतरीन वीडियो को मिला, जो बताता है कि Google सतह पर क्या करता है। देखने के लिए दिलचस्प है।

Youtube पर Google 1 YouTube पर
Google 2

वह थोड़ा गहरा हो जाता है लेकिन इतना गहरा नहीं होता कि आप तकनीकी में खो जाते हैं।

चीयर्स।


1

बस यहाँ अद्भुत जवाब के लिए कुछ जोड़ने। Google लोकप्रिय खोज वाक्यांशों के कैशिंग का उपयोग करता है। इन खोजों के परिणाम एक स्मृति में रहते हैं। इसलिए यदि आप कुछ खोजते हैं जो बहुत खोजा जाता है, तो परिणाम लगभग तुरंत दिखाई देंगे।


0

एक सरलीकृत स्तर पर प्रश्न का उत्तर देने के लिए: कल्पना कीजिए कि आपके पास पीछे एक कीवर्ड इंडेक्स के साथ एक पाठ्यपुस्तक है।

हार्ड डिस्क खोजना (भोलेपन से, कम से कम) पुस्तक के माध्यम से जाना है, पृष्ठ दर पृष्ठ, अपने कीवर्ड की घटना के लिए प्रत्येक पंक्ति को स्कैन करना।

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

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

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

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


-1

मुझे लगता है कि Google ने जिन कारणों Auto Completeका इस्तेमाल किया और उनमें से एक AJAXथा, वह थी स्पीड की समस्या। अब जब आप टाइप कर रहे हैं, तो शब्दों को पृष्ठभूमि में भेजा जाता है ताकि Google नौकरी का हिस्सा बना सके, जबकि आप अभी तक समाप्त नहीं हुए हैं। इसके अलावा सूचकांक कई शब्द संयोजनों पर आधारित होते हैं (जो आप पृष्ठ के निचले भाग में सुझाव के रूप में पा सकते हैं)। वर्तमान में नेटवर्क की गति हार्ड-ड्राइव से अधिक है और शायद उन सूचकांकों में से अधिकांश अपने खेत में सर्वर की रैम में रहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.