हम अपने ल्यूसीन इंडेक्स और प्रत्येक 2 घंटे या उससे भी अधिक की वृद्धिशील इंडेक्स पर हर 7 दिनों (यानी स्क्रैच से इंडेक्स बनाना) पूर्ण पुन: इंडेक्स चलाते हैं। हमारे सूचकांक में लगभग 700,000 दस्तावेज हैं और एक पूर्ण अनुक्रमणिका लगभग 17 घंटे लगती है (जो कोई समस्या नहीं है)।ल्यूसीन में वृद्धिशील सूचकांक के बाद एक सूचकांक अनुकूलित किया जाना चाहिए?
जब हम वृद्धिशील इंडेक्स करते हैं, तो हम केवल पिछले दो घंटों में परिवर्तित सामग्री की अनुक्रमणिका करते हैं, इसलिए इसमें बहुत कम समय लगता है - लगभग आधे घंटे। हालांकि, हमने देखा है कि इस समय बहुत सारे (शायद 10 मिनट) इंडेक्सवाइटर.ऑप्टिमाइज़() विधि को चलाने में व्यतीत किया जाता है।
LuceneFAQ कहा गया है कि:
IndexWriter वर्ग एक का अनुकूलन() विधि है कि सूचकांक डेटाबेस काम्पैक्ट और प्रश्नों को गति का समर्थन करता है। आप अपने दस्तावेज़ सेट की पूरी अनुक्रमणिका या इंडेक्स के बढ़ते अपडेट के बाद इस विधि का उपयोग करना चाह सकते हैं। यदि आपका वृद्धिशील अद्यतन दस्तावेज़ों को अक्सर जोड़ता है, तो आप ऑप्टिमाइज़ेशन के अतिरिक्त ओवरहेड से बचने के लिए केवल थोड़ी देर में ऑप्टिमाइज़ेशन करना चाहते हैं।
... लेकिन ऐसा लगता है कि "अक्सर" का अर्थ क्या है। अनुकूलन सीपीयू गहन और बहुत आईओ-गहन है, इसलिए अगर हम इससे दूर हो सकते हैं तो हम इसे नहीं कर पाएंगे। एक गैर-अनुकूलित इंडेक्स पर चल रहे प्रश्नों की हिट कितनी है (मैं विशेष रूप से 20 वृद्धिशील इंडेक्स के बाद पूर्ण पुन: इंडेक्स के बाद क्वेरी प्रदर्शन के संदर्भ में सोच रहा हूं, कहता है, 50,000 दस्तावेज़ बदल गए हैं)? क्या हमें हर वृद्धिशील इंडेक्स के बाद अनुकूलित करना चाहिए या प्रदर्शन हिट इसके लायक नहीं है?
इन प्रकार के परिवर्तन * उनके बिना अंधेरे में शॉट्स हैं। –
चीयर्स, अनुमान है कि मैं सोच रहा था कि क्या लोगों ने मुझे अनुभव किया था और उत्पादन प्रणाली के साथ गड़बड़ करना शुरू कर दिया था :) –
मैट: हाँ, मुझे एहसास है कि आप विशिष्ट सलाह की तलाश में थे, और मैं थोड़ा सामान्य था। मेरे अनुभव में (मैं वर्षों से ल्यूसीन का उपयोग कर रहा हूं) आप ऑप्टिमाइज़() के बिना ठीक होंगे। मैंने अपने सिस्टम के ऊपर से ऑप्टिमाइज़() को अपने ओवरहेड के कारण हटा दिया है। –