एक खोज इंजन के कई भागों रहे हैं। मोटे तौर पर एक बुरी सामान्य ढंग से (लोगों, संपादित करने के लिए अगर आप आप बेहतर वर्णन, लिंक, आदि जोड़ सकते हैं महसूस हो रहा है के लिए स्वतंत्र महसूस):
क्रॉलर। यह वह हिस्सा है जो वेब के माध्यम से जाता है, पृष्ठों को पकड़ता है, और कुछ केंद्रीय डेटा स्टोर में उनके बारे में जानकारी संग्रहीत करता है। टेक्स्ट के अलावा, आप चीजें जैसे ही आपने इसे एक्सेस किया था, इत्यादि चाहेंगे। क्रॉलर को यह जानने के लिए पर्याप्त स्मार्ट होना चाहिए कि रोबोट्सटीटी कन्वेंशन इत्यादि का पालन करने के लिए कुछ डोमेन कितनी बार मारा जाए।
पार्सर। यह क्रॉलर द्वारा प्राप्त डेटा को पढ़ता है, इसे पार करता है, जो भी मेटाडाटा की आवश्यकता होती है उसे बचाता है, जंक फेंकता है, और संभावित रूप से अगली बार क्या लाने के लिए क्रॉलर को सुझाव देता है।
सूचकांक। पार्सर को पार्स किए गए सामान को पढ़ता है, और वेबपृष्ठों पर पाए गए शब्दों में उलटा इंडेक्स बनाता है। यह रूप में स्मार्ट के रूप में आप इसे होना चाहते हो सकता है - अवधारणाओं के सूचक, पार से लिंक चीजें बनाने के लिए NLP तकनीकों को लागू, आदि समानार्थी शब्द में फेंक,
रैंकिंग इंजन। "सेब" से मेल खाने वाले कुछ हज़ार यूआरएल दिए गए, आप कैसे निर्णय लेते हैं कि कौन सा परिणाम सबसे अच्छा है? जूट इंडेक्स आपको वह जानकारी नहीं देता है। आपको टेक्स्ट, लिंकिंग स्ट्रक्चर, और जो भी अन्य टुकड़े देखना चाहते हैं, उनका विश्लेषण करने और कुछ स्कोर बनाने की आवश्यकता है।यह पूरी तरह से मक्खी पर किया जा सकता है (यह वास्तव में कठिन है), या "विशेषज्ञों" के कुछ पूर्व-गणना विचारों के आधार पर (पेजरैंक देखें, आदि) पर आधारित किया जा सकता है।
फ्रंट एंड। कुछ उपयोगकर्ता क्वेरी प्राप्त करने की आवश्यकता है, केंद्रीय इंजन मारा, और जवाब; कैशिंग परिणामों के बारे में कुछ समझने की ज़रूरत है, संभवतः अन्य स्रोतों के परिणामों में मिश्रण करना आदि। इसमें इसकी समस्याओं का सेट है।
मेरी सलाह - चुनें इन हितों की जो आप सबसे अधिक, डाउनलोड Lucene या Xapian या किसी अन्य ओपन सोर्स प्रोजेक्ट वहाँ बाहर, बिट है कि ऊपर कार्यों में से एक करता है बाहर खींच, और यह बदलने का प्रयास । उम्मीद है कि कुछ बेहतर के साथ :-)।
कुछ लिंक है कि उपयोगी साबित हो सकता: "Agile web-crawler", (अंग्रेजी में) Sphinx Search engine एस्टोनिया के एक कागज, एक अनुक्रमण और खोज API। बड़े डीबी के लिए डिज़ाइन किया गया, लेकिन मॉड्यूलर और ओपन-एंडेड। "Information Retrieval, मैनिंग एट अल से आईआर के बारे में एक पाठ्यपुस्तक। इंडेक्स कैसे बनाए जाते हैं, विभिन्न मुद्दों के साथ-साथ क्रॉलिंग की कुछ चर्चा आदि का अच्छा अवलोकन, मुफ्त ऑनलाइन संस्करण (अभी के लिए)!
यह आपकी पसंदीदा प्रोग्रामिंग भाषाओं पर निर्भर करता है। जावा प्रश्न से परे है। क्या आप एएसपीनेट, पर्ल, पायथन, PHP, में कोड करते हैं ...किसी भी पर्याप्त उत्तर की पेशकश की जाने से पहले जानना महत्वपूर्ण होगा :) – Anheledir
हे! [मेरा] (http://code.google.com/p/goomez/) देखें ... [lucene.net] पर आधारित बहुत सरल फ़ाइल खोजकर्ता (http://incubator.apache.org/lucene.net/) – sebagomez
क्या आपने नच जावा से एक बंदरगाह nutch.net की कोशिश की है .... – chugh97