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

Apache Lucene के साथ एक MySQL डेटाबेस को इंडेक्स करें, और उन्हें सिंक्रोनाइज़ करें

जब तक आप इंडेक्सिंग/रीइंडेक्सिंग को अपने एप्लिकेशन से अलग चलने देते हैं, तब तक आपको सिंक्रोनाइज़ेशन की समस्या होगी। आपके कार्यक्षेत्र के आधार पर, यह कोई समस्या नहीं हो सकती है, लेकिन कई समवर्ती-उपयोगकर्ता-अनुप्रयोगों के लिए यह है।

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

हमने दो संभावनाएं देखीं:या तो व्यावसायिक तर्क को खोज अनुक्रमणिका के अपडेट से कसकर कनेक्ट करें, या एक सख्त एसिंक्रोनस अपडेट कार्य को लागू करें। हमने बाद वाला किया।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक होस्ट पर PHP साइट के सत्रों को संभालने का सबसे अच्छा तरीका क्या है?

  2. एक प्रश्न में नोड-mysql एकाधिक कथन

  3. MySQL:DATE_ADD

  4. मॉडल के लिए कोई क्वेरी परिणाम नहीं [App\Products] Laravel

  5. MySQL में डेली एक्टिव यूजर्स (DAU) की गणना कैसे करें