मैं एक MySQL डेटाबेस का उपयोग कर रहा हूं और डेटाबेस संचालित खोज का उपयोग कर रहा हूं। डेटाबेस इंजन और लुसेन सर्च इंजन के किसी भी फायदे और नुकसान? मैं सुझाव देना चाहूंगा कि उन्हें कब और कहां उपयोग किया जाए?खोज इंजन ल्यूसीन बनाम डाटाबेस खोज
उत्तर
मेरा सुझाव है कि आप Full Text Search Engines vs. DBMS पढ़ लें। एक लाइनर होगा: यदि आपके उपयोग का बड़ा हिस्सा पूर्ण पाठ खोज है, तो लुसीन का उपयोग करें। यदि आपके उपयोग का बड़ा हिस्सा जुड़ता है और अन्य रिलेशनल ऑपरेशंस है, तो डेटाबेस का उपयोग करें। आप अधिक जटिल उपयोग केस के लिए एक हाइब्रिड समाधान का उपयोग कर सकते हैं।
लुसीन खोज में अनुक्रमण का लाभ है। This पोस्ट आपको लुसीन समझने में मदद कर सकता है।
मुझे लगता है कि हम डेटाबेस तालिका पर भी इंडेक्स जोड़ सकते हैं। लेकिन मेरे पास कोई सुराग नहीं है कि यह क्या है? –
Lucene उपयोग आप (किसी भी लम्बाई के) दस्तावेज़ों और उनके भीतर पाठ के लिए खोज, दस्तावेज है कि खोज क्वेरी से मेल खाने के रैंक की गई सूची लौटने सूचकांक शाब्दिक चाहते हैं। क्लासिक उदाहरण Google की तरह खोज इंजन है, जो टेक्स्ट इंडेक्सर्स का उपयोग करता है जैसे ल्यूसीन इंडेक्स और वेब पृष्ठों की सामग्री से पूछताछ करता है।
Mysql की तरह एक डेटाबेस से अधिक Lucene का उपयोग कर, अनुक्रमण के लिए और खोज पाठ के लाभ हैं:
- डेवलपर के लिए - उपकरण, विश्लेषण सूचकांक शाब्दिक जानकारी पार्स और करने के लिए (उदाहरण के लिए उत्पन्न, बहुवचन, समानार्थी, टोकनिसेशन) कई भाषाओं में। ल्यूसीन टेक्स्ट खोज के लिए भी बहुत अच्छी तरह से स्केल करता है।
- उपयोगकर्ता के लिए - गुणवत्ता खोज परिणाम। ल्यूसीन कोसाइन समानता और व्यस्त अवधि/दस्तावेज़ आवृत्ति के दिल में, बहुत अच्छे similarity function (प्रत्येक दस्तावेज़ के विरुद्ध खोज क्वेरी की तुलना करने के लिए) का उपयोग करता है। इसके परिणामस्वरूप बहुत कम ट्विकिंग के साथ अच्छे खोज परिणामों में आगे की आवश्यकता होती है।
useful info on Lucene here के बहुत सारे।
लुसीन के लिए कोई और अधिक लाभदायक विकल्प है। ओपनसॉर्स या प्रोप्राइटर (पेड या आरईएसटी एपीआई) –
हमने कुछ प्रश्न पूछने के लिए एसक्यूएल सर्वर का उपयोग किया जो फुलटेक्स्ट खोज का उपयोग करता था। डेटा की बड़ी मात्रा के मामले में एसक्यूएल फुलटेक्स्ट सर्च द्वारा लौटाए गए परिणाम सेट के बीच एक आंतरिक जुड़ाव बनाता है और शेष क्वेरी जो धीमी हो सकती है यदि डेटाबेस कम संचालित मशीन (20 जीबी डेटा के लिए 2 जीबी रैम) पर चल रहा है। ल्यूसीन में एक ही क्वेरी को स्विच करने में काफी सुधार हुआ।
मैंने कई साइटों में 'हमारी साइट खोजें' देखा है। अगर मैं साइटों की सामग्री खोजना चाहता हूं, तो कौन सा बेहतर होगा? –
साइट खोजना पूर्ण-पाठ खोज है। इसलिए, लुसीन बेहतर है। बेहतर अभी भी, सोलर का उपयोग करें: http://lucene.apache.org/solr/ –
@YuvalF यदि डेटाबेस बड़ा नहीं है और उस साइट का उपयोगकर्ता इतना नहीं है, तो डीबीएमएस आधारित पूर्ण पाठ क्वेरी पर्याप्त है? चूंकि कभी-कभी वह लड़का ल्यूसीन का उपयोग करना चाहता है, तो उसे खुद इसे विकसित करना होगा ... – hugemeow