/ / सोलर इंडेक्स से डेटा अपडेट या हटाएं? - PHP, mysql, खोज, solr

सोलर इंडेक्स से डेटा अपडेट या हटाएं? - PHP, mysql, खोज, solr

हमारे पास एक php-application है, जिसमें सोलर (SolrPhpClient के साथ) द्वारा एक विशाल MySQL डेटाबेस और खोज अनुक्रमणिका है।

हमारी अनुक्रमणिका (क्रॉन के माध्यम से) को अपडेट करने से पहले, हम सभी वस्तुओं को हटा रहे हैं, जो इस समय स्टॉक में नहीं हैं। और केवल हम MySQL (स्टॉक में) से आइटम का चयन करने और इस डेटा को सोलर में जोड़ने के बजाय।

मेरे पास एक विचार है, जो हमारे अपडेट करने का मौजूदा तरीका हैऐप प्रदर्शन के लिए खोज सूचकांक बहुत महंगा है। असल में हम इन सभी वस्तुओं को फिर से समझते हैं (हम रूसी शब्द स्टेमिंग, लोअर-केस और इतने पर ... के लिए स्कीमा में कुछ फ़िल्टर का उपयोग करते हैं ...), फ्लैग (इनस्टॉक = 1) के साथ इंडेक्स में आउट-ऑफ-स्टॉक आइटम छोड़ने के बजाय।

भविष्य में, मुझे लगता है कि, हमारे पास इंडेक्स में 100 से अधिक 000 स्थिति (शायद अधिक) होगी। इसलिए अपडेट करने का यह तरीका हमारी अनुक्रमणिका को धीमा कर देगा और सर्वर लोड बहुत अधिक होगा।

क्या आप मुझे इंडेक्स अपडेट करने और उससे डेटा चुनने की स्थिति से इस समस्या के बारे में अपने विचार बता सकते हैं?

मेरी बात सुनने के लिए धन्यवाद...

उत्तर:

उत्तर № 1 के लिए 1

शायद आपके विलोपन को ट्यून करके आप बेहतर प्रदर्शन कर सकते हैं। यहां छद्म कोड है:

  • "स्टॉक से बाहर" और सोलर इंडेक्स में केवल उन्हीं वस्तुओं को निकालें
  • "स्टॉक में" केवल आइटम जोड़ें / अपडेट करें लेकिन या तो सोलर में मौजूद नहीं है या इन्वेंट्री गिनती गलत है।

इस तरह आप हर बार हर दस्तावेज़ को पुन: अनुक्रमणित नहीं कर रहे हैं, लेकिन केवल वे जिन्हें अपडेट करने की आवश्यकता है।


उत्तर № 2 के लिए 1

सोलर डीआईएच शायद आपके जैसा एक अच्छा समाधान हैPHP के साथ बहुत सारे बॉयलर-प्लेट कोड लिखने को समाप्त कर देगा जो पहले ही डीआईएच के साथ उपलब्ध है। हालांकि, मैं अपने स्वयं के कस्टम कोड बनाम डीआईएच की दक्षता के बारे में विशेष रूप से टिप्पणी नहीं कर सकता, मेरा अनुभव यह है कि डीआईएच अपनी नौकरी अच्छी तरह से करता है। 100 के दस्तावेज (मानते हैं कि वे बड़े दस्तावेज नहीं हैं), वास्तव में बड़ा नहीं है। मैंने सोलर को लाखों दस्तावेजों को बिना किसी प्रयास के संभाल लिया है।

मुझे डीबी में "आयात-सफलता" ध्वज रखने की ज़रूरत नहीं है। सौर राज्य को स्वयं ही बनाए रखता है।

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