मैं लगभग 2 मिलियन रिकॉर्ड का ल्यूसीन बनाने की कोशिश कर रहा हूं। अनुक्रमण समय लगभग 9 घंटे है। क्या आप कृपया सुझाव दे सकते हैं कि प्रदर्शन को कैसे बढ़ाया जाए?कैसे करें: ल्यूसीन .नेट इंडेक्सिंग स्पीड बढ़ाएं
उत्तर
लुसीन के अनुक्रमण प्रदर्शन में सुधार करने का सबसे आसान तरीका इंडेक्सवाइटर के विलय फैक्टर इंस्टॉलेशन चर के मान को समायोजित करना है। यह मान ल्यूसीन को डिस्क पर लिखने से पहले मेमोरी में स्टोर करने के लिए कितने दस्तावेज बताता है, साथ ही साथ कई सेगमेंट को एक साथ कैसे मर्ज करना है।
http://search-lucene.blogspot.com/2008/08/indexing-speed-factors.html
मैं कैसे एक Lucene सूचकांक parallelize करने पर एक भयानक पोस्ट लिखा। यह वास्तव में बहुत लिखा है, लेकिन आपको यह here मिलेगा (कुछ नमूना कोड है जिसे आप देखना चाहते हैं)।
किसी भी तरह, मुख्य विचार यह है कि आप अपने डेटा को बड़े टुकड़ों में जोड़ते हैं, और फिर उन टुकड़ों पर एक अलग थ्रेड पर काम करते हैं। जब प्रत्येक टुकड़े किए जाते हैं, तो आप उन्हें एक ही इंडेक्स में विलय करते हैं।
ऊपर वर्णित दृष्टिकोण के साथ, मैं लगभग 4+ मिलियन रिकॉर्ड इंडेक्स करने में सक्षम हूं। 2 घंटे।
आशा है कि यह आपको यहां से कहां से जाना है इसका एक विचार देता है।
लेखन पक्ष (मर्ज फैक्टर) और गणना गणना पहलू (समांतरता) के अलावा कभी-कभी कारणों के सबसे सरल कारणों से होता है: धीमी इनपुट। कई लोग डेटा के डेटाबेस से ल्यूसीन इंडेक्स बनाते हैं। कभी-कभी आप पाते हैं कि इस डेटा के लिए एक विशेष क्वेरी बहुत जटिल है और वास्तव में सभी (2 मिलियन?) रिकॉर्ड्स को वास्तव में वापस करने में धीमी है। केवल क्वेरी और डिस्क पर लिखने का प्रयास करें, अगर यह अभी भी 5-9 घंटे के क्रम में है, तो आपको ऑप्टिमाइज़ करने के लिए एक जगह मिली है (एसक्यूएल)।
निम्न आलेख वास्तव में मुझे मदद की है जब मैं चीज़ों को गति करने की जरूरत:
http://wiki.apache.org/lucene-java/ImproveIndexingSpeed
मैंने पाया कि दस्तावेज़ निर्माण हमारे प्राथमिक टोंटी था। डेटा एक्सेस को अनुकूलित करने और कुछ अन्य सिफारिशों को लागू करने के बाद, मैं सूचकांक प्रदर्शन में काफी वृद्धि करने में सक्षम था।
हाय एस्टेबान प्रतिक्रिया के लिए धन्यवाद। मैं आपके द्वारा किए गए कार्यों के समान कुछ ढूंढ रहा हूं। क्या आप कृपया अपने ब्लॉग में कुछ कोड स्निपेट पोस्ट कर सकते हैं। धन्यवाद, गोकुल – Gokul