मेटा-पॉइंट पर विचार करें: साक्षात्कारकर्ता की तलाश क्या है?
एक आम सवाल यह है कि आप पेजरैंक-प्रकार के एल्गोरिथ्म को लागू करने या वितरित अनुक्रमण को कैसे करें, के बारे में अपना समय बर्बाद करने के लिए नहीं देख रहे हैं। इसके बजाय, यह क्या होगा की पूरी तस्वीर पर ध्यान दें । ऐसा लगता है कि आप पहले से ही सभी बड़े टुकड़ों (BigTable, PageRank, Map / Reduce) को जानते हैं। तो सवाल यह है कि, आप वास्तव में उन्हें एक साथ कैसे तार करते हैं?
यहाँ मेरा छुरा है।
चरण 1: इन्फ्रास्ट्रक्चर को अनुक्रमित करना (5 मिनट की व्याख्या करना)
Google (या किसी भी खोज इंजन) को लागू करने का पहला चरण एक अनुक्रमणिका का निर्माण करना है। यह सॉफ्टवेयर का एक टुकड़ा है जो डेटा के कॉर्पस को क्रॉल करता है और डेटा संरचना में परिणाम उत्पन्न करता है जो रीड करने के लिए अधिक कुशल होता है।
इसे लागू करने के लिए, दो भागों पर विचार करें: क्रॉलर और इंडेक्सर।
वेब क्रॉलर का काम वेब पेज लिंक को मकड़ी से जोड़ना और उन्हें एक सेट में डंप करना है। यहां सबसे महत्वपूर्ण कदम है अनंत लूप या असीम रूप से उत्पन्न सामग्री में फंसने से बचना। इनमें से प्रत्येक लिंक को एक विशाल पाठ फ़ाइल (अब के लिए) में रखें।
दूसरा, इंडेकर मैप / रिड्यूस जॉब के हिस्से के रूप में चलेगा। (इनपुट में प्रत्येक आइटम के लिए एक फ़ंक्शन मैप करें, और फिर परिणामों को एक 'चीज़' में घटाएं।) इंडेक्सर एक एकल वेब लिंक लेगा, वेबसाइट को पुनः प्राप्त करेगा, और इसे एक इंडेक्स फ़ाइल में परिवर्तित करेगा। (इसके बाद चर्चा की गई।) इन सभी इंडेक्स फाइलों को एक यूनिट में घटाकर स्टेप को कम किया जाएगा। (बल्कि लाखों ढीली फाइलें।) चूंकि अनुक्रमण चरण समानांतर में किए जा सकते हैं, इसलिए आप इस मानचित्र / नौकरी को मनमाने ढंग से बड़े डेटा सेंटर में खेती कर सकते हैं।
चरण 2: अनुक्रमण एल्गोरिथ्म की विशिष्टताएं (10 मिनट की व्याख्या करना)
एक बार जब आप कह चुके हैं कि आप वेब पृष्ठों को कैसे संसाधित करेंगे, तो अगला भाग बता रहा है कि आप सार्थक परिणामों की गणना कैसे कर सकते हैं। यहाँ संक्षिप्त उत्तर 'बहुत अधिक मानचित्र / घटता है', लेकिन उन बातों पर विचार करें जो आप कर सकते हैं:
- प्रत्येक वेब साइट के लिए, आने वाले लिंक की संख्या की गणना करें। (अधिक भारी लिंक वाले पृष्ठों को 'बेहतर' होना चाहिए।)
- प्रत्येक वेब साइट के लिए, यह देखें कि लिंक कैसे प्रस्तुत किया गया था। (<H1> या <b> में लिंक <h3> में दफन किए गए लोगों की तुलना में अधिक महत्वपूर्ण होना चाहिए।]
- प्रत्येक वेब साइट के लिए, आउटबाउंड लिंक की संख्या देखें। (किसी को भी स्पैमर पसंद नहीं है।)
- प्रत्येक वेब साइट के लिए, प्रयुक्त शब्दों के प्रकारों को देखें। उदाहरण के लिए, 'हैश' और 'टेबल' का अर्थ है कि वेब साइट कंप्यूटर विज्ञान से संबंधित है। दूसरी ओर 'हैश' और 'ब्राउनीज' का अर्थ यह होगा कि साइट कुछ अलग थी।
दुर्भाग्य से मुझे डेटा को सुपर उपयोगी बनाने के लिए विश्लेषण और संसाधित करने के तरीकों के बारे में पर्याप्त नहीं पता है। लेकिन सामान्य विचार आपके डेटा का विश्लेषण करने के लिए स्केलेबल तरीके हैं ।
चरण 3: परिणाम की सेवा (10 मिनट का समय बिताते हुए)
अंतिम चरण वास्तव में परिणामों की सेवा कर रहा है। उम्मीद है कि आपने वेब पेज डेटा का विश्लेषण करने में कुछ दिलचस्प अंतर्दृष्टि साझा की हैं, लेकिन सवाल यह है कि आप वास्तव में इसे कैसे क्वेरी करते हैं? प्रत्येक दिन Google के 10% खोज प्रश्नों को पहले कभी नहीं देखा गया है। इसका मतलब है कि आप पिछले परिणामों को कैश नहीं कर सकते।
आपके पास अपने वेब इंडेक्स से एक भी 'लुकअप' नहीं हो सकता है, इसलिए आप कौन सा प्रयास करेंगे? आप अलग-अलग इंडेक्स में कैसे दिखेंगे? (शायद संयोजन परिणाम - शायद कीवर्ड 'स्टैकओवरफ़्लो' कई अनुक्रमों में अत्यधिक आया।)
इसके अलावा, आप इसे कैसे भी देखेंगे? सूचनाओं का भारी मात्रा में डेटा पढ़ने के लिए आप किस तरह के दृष्टिकोणों का उपयोग कर सकते हैं ? (अपने पसंदीदा NoSQL डेटाबेस को यहां नामांकित करने के लिए स्वतंत्र महसूस करें और / या Google के BigTable के बारे में सब कुछ देखें।) यहां तक कि अगर आपके पास एक भयानक सूचकांक है जो अत्यधिक सटीक है, तो आपको इसमें डेटा खोजने का एक तरीका चाहिए। (उदाहरण के लिए, 200GB फ़ाइल के अंदर 'stackoverflow.com' के लिए रैंक नंबर का पता लगाएं।)
यादृच्छिक मुद्दे (शेष समय)
एक बार जब आप अपने खोज इंजन की 'हड्डियों' को कवर कर लेते हैं, तो किसी भी व्यक्तिगत विषय पर विशेष रूप से जानकार हों, जो आपके बारे में जानकार हो।
- वेबसाइट फ्रंटएंड का प्रदर्शन
- अपने मानचित्र / नौकरियों को कम करने के लिए डेटा केंद्र का प्रबंधन करना
- ए / बी परीक्षण खोज इंजन में सुधार
- अनुक्रमण में पिछले खोज मात्रा / रुझान को एकीकृत करना। (उदाहरण के लिए, फ्रंटएंड सर्वर लोड की उम्मीद है 9-9 स्पाइक और प्रारंभिक एएम में मर जाते हैं।)
यहां चर्चा करने के लिए लगभग 15 मिनट से अधिक की सामग्री है, लेकिन उम्मीद है कि यह आपको शुरू करने के लिए पर्याप्त है।