Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पूर्ण पाठ खोज इंजन की तुलना - Lucene, Sphinx, Postgresql, MySQL?

ल्यूसीन के बारे में किसी की झंकार को देखकर अच्छा लगा - क्योंकि मुझे इसके बारे में कोई जानकारी नहीं है।

दूसरी ओर, स्फिंक्स, मैं अच्छी तरह से जानता हूं, तो देखते हैं कि क्या मैं कुछ मदद कर सकता हूं।

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

मुझे नहीं पता कि यह आपकी स्थिति पर कितना लागू होता है, लेकिन इवान वीवर ने कुछ सामान्य रेल खोज विकल्पों की तुलना की (स्फिंक्स, फेरेट (रूबी के लिए ल्यूसीन का एक बंदरगाह) और सोलर), कुछ बेंचमार्क चला रहा है। उपयोगी हो सकता है, मुझे लगता है।

मैंने MySQL की पूर्ण-पाठ खोज की गहराई को कम नहीं किया है, लेकिन मुझे पता है कि यह स्फिंक्स, ल्यूसीन या सोलर के साथ गति-वार और न ही सुविधा-वार प्रतिस्पर्धा नहीं करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विजुअल स्टूडियो में एक MySQL डेटा स्रोत से कैसे कनेक्ट करें

  2. MySQL के लिए Navicat

  3. मेरे पास पूर्णांकों की एक सरणी है, मैं प्रत्येक को एक mysql क्वेरी (php में) में कैसे उपयोग करूं?

  4. mysql_fetch_array ()/mysql_fetch_assoc ()/mysql_fetch_row ()/mysql_num_rows आदि... पैरामीटर 1 को संसाधन होने की अपेक्षा करता है

  5. एक तैयार स्टेटमेंट, `WHERE .. IN(..)` क्वेरी और सॉर्टिंग — MySQL के साथ