PHP और MySQL में सर्च इंजन कैसे बनाएं

फिर भी आप एक खोज इंजन क्यों बनाना चाहेंगे? उन सभी पर शासन करने के लिए पहले से ही एक खोज इंजन मौजूद है। आप इंटरनेट पर कुछ भी ढूंढने के लिए Google का उपयोग कर सकते हैं और मुझे संदेह है कि आपके पास कभी भी बिग G जैसी कंप्यूटिंग और स्टोरेज क्षमताएं होंगी।

तो फिर अपना स्वयं का खोज इंजन क्यों बनाएं? - बेशक पैसा कमाने के लिए!

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

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

खोज की मूल बातें

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

सर्च इंजन बनाने के लिए आपको चार काम करने होंगे:

* तय करें कि कौन से पेज लाने हैं और उन्हें लाना है
* पृष्ठ से शब्दों, वाक्यांशों और लिंक को पार्स करेंgoogle-custom-se
* प्रत्येक कीवर्ड या मुख्य वाक्यांश को एक अंक दें जो यह दर्शाता हो कि वह वाक्यांश उस पेज से कितनी अच्छी तरह संबंधित है और स्कोर को खोज इंजन सूचकांक में संग्रहीत करें
* उपयोगकर्ताओं को इंडेक्स से पूछताछ करने और मेल खाने वाले वेब पेजों की सूची प्राप्त करने का एक तरीका प्रदान करें

एक अनुभवी प्रोग्रामर के लिए यह कठिन नहीं है। यह एक दिन में किया जा सकता है यदि आप नियमित अभिव्यक्ति जानते हैं और HTML और डेटाबेस के साथ कुछ अनुभव रखते हैं।

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

पेज कैसे स्कोर करें

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

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

क्या इंडेक्स करें और क्या इंडेक्स न करें

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

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

वेबसाइटों को पार्स करना

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

पृष्ठों से कीवर्ड पार्स करते समय आपको न केवल संपूर्ण HTML मानक को संभालना होगा, बल्कि उन सभी गैर-मानक तरीकों को भी संभालना होगा जो इंटरनेट ब्राउज़र द्वारा अनौपचारिक रूप से समर्थित हैं।

सभी पृष्ठों को पढ़ने में सक्षम होने के लिए आपको क्लाइंट साइड जावास्क्रिप्ट को पार्स करने, फ्रेम, सीएसएस और आईफ्रेम को संभालने की भी आवश्यकता होगी।
सभी प्रकार की सामग्री को पढ़ने में सक्षम होना एक सामान्य खोज इंजन पर काम का एक बड़ा हिस्सा है।

इतने सारे यूआरएल क्यों?

अंततः आपको इस तथ्य से निपटना होगा कि कई वेबसाइटों में एक ही वेब पेज की ओर इशारा करने वाले कई यूआरएल होते हैं। बस इस उदाहरण को देखें:

dmoz.org
www.dmoz.org
dmoz.org/index.html
www.dmoz.org/index.html

वे सभी यूआरएल एक ही वेब पेज की ओर इशारा करते हैं। यदि आप इसे संभालने के लिए विशेष कोड नहीं बनाते हैं, तो आपके खोज इंजन में जल्द ही 4 परिणाम होंगे (प्रत्येक यूआरएल के लिए एक) और सभी एक ही पृष्ठ पर जाएंगे। उपयोगकर्ता आपको पसंद नहीं करेंगे.
क्वेरी स्ट्रिंग्स की भी संभावना है जहां यूआरएल में प्रश्न चिह्न के बाद एक सत्र आईडी उसी वेब पेज के लिए लगभग अनंत यूआरएल बनाएगी।

google.com?SID=4434324325325
google.com?SID=4387483748377
google.com?SID=7654565644466

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

अब आपके पास साइट सर्च इंजन बनाने के लिए आवश्यक सभी जानकारी है। यदि आप एक सामान्य इंटरनेट खोज इंजन के लिए जा रहे हैं तो आपको बहुत अधिक विवरण शामिल करने की आवश्यकता है। जैसे robots.txt, साइट मैप, रीडायरेक्ट, प्रॉक्सी, सामग्री प्रकारों को पहचानना, उन्नत रैंकिंग एल्गोरिदम के साथ-साथ डेटा के टेराबाइट्स को संभालना। मैं भविष्य के लेख में अधिक विस्तार से बताऊंगा। आपके अगले खोज इंजन प्रोजेक्ट के लिए शुभकामनाएँ!

श्रेणियाँब्लॉग
  1. Pingback:ट्वीट जो TopTut.com का उल्लेख करते हैं - शीर्ष ट्यूटोरियल » PHP और MySQL में एक खोज इंजन कैसे बनाएं - Topsy.com

  2. पिंगबैक:TopTut.com - शीर्ष ट्यूटोरियल »PHP में सर्च इंजन कैसे बनाएं... | सर्चइंजन प्रमोशन ऑनलाइन

टिप्पणियाँ बंद हैं।