2010-10-25 10 views
15

मेरे पास लगभग 700 जीबी की एक सोलर/ल्यूसीन इंडेक्स फ़ाइल है। जिन दस्तावेजों को मुझे इंडेक्स करने की आवश्यकता है उन्हें रीयल-टाइम में पढ़ा जा रहा है, हर 30 मिनट में लगभग 1000 दस्तावेज़ सबमिट किए जाते हैं और उन्हें अनुक्रमित करने की आवश्यकता होती है। मेरे परिदृश्य में प्रत्येक 30 मिनट में एक स्क्रिप्ट चलायी जाती है जो दस्तावेजों को अनुक्रमित करता है जो अभी तक अनुक्रमित नहीं हैं, क्योंकि यह एक आवश्यकता है कि नए दस्तावेज़ जल्द से जल्द खोजे जा सकें, लेकिन यह प्रक्रिया खोज को धीमा कर देती है।सूचकांक वास्तविक समय रखने के लिए सबसे अच्छा तरीका है?

क्या यह सबसे अच्छा तरीका है कि मैं नवीनतम दस्तावेज़ों को अनुक्रमित कर सकता हूं या कोई अन्य बेहतर तरीका है!

उत्तर

10

सबसे पहले, याद रखें कि सोलर रीयल-टाइम सर्च इंजन नहीं है (अभी तक)। अभी भी work किया जाना है।

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

इसके अलावा, आपको cache warming settings देखें। याद रखें कि यदि खोज बहुत आक्रामक हैं तो यह खोज को धीमा कर सकता है। new searcher event पर लॉन्च किए गए प्रश्नों को भी देखें।

+1

अपडेट: सोलर में अब (पास) वास्तविक समय की खोज क्षमताएं हैं। अधिक जानकारी के लिए – mt3

+0

@ mt3 लिंक? – Simon

+1

@Simon देरी से जवाब के लिए खेद है। यह सोलर/लुसेन शाखा के ट्रंक में है। http://wiki.apache.org/solr/NearRealtimeSearch – mt3

4

आप आसानी से लुसीन के साथ ऐसा कर सकते हैं। इंडेक्स को कई हिस्सों में विभाजित करें (या सटीक होने के लिए, इंडेक्स बनाने के दौरान, "छोटे" भाग बनाएं।) प्रत्येक भाग के लिए खोजकर्ता बनाएं और उन्हें संदर्भ दें। आप इन व्यक्तिगत भागों के शीर्ष पर एक मल्टीशियर बना सकते हैं।

अब, केवल एक ही सूचकांक होगा जो नए दस्तावेज़ प्राप्त करेगा। नियमित अंतराल पर, इस अनुक्रमणिका में दस्तावेज़ जोड़ें, इस खोजकर्ता को प्रतिबद्ध और पुनः खोलें।

अंतिम अनुक्रमणिका अद्यतन होने के बाद, आप पहले खोले गए खोजकर्ताओं का उपयोग करके फिर से एक नया बहु-खोजकर्ता बना सकते हैं।

इस प्रकार, किसी भी समय, आप केवल एक खोजकर्ता को फिर से खोलेंगे और यह काफी तेज़ होगा।

1

^^ मैं यह सामान्य ल्यूसीन, गैर सोलर के साथ करता हूं, और यह वास्तव में अच्छा काम करता है। हालांकि इस समय यह सुनिश्चित करने के लिए कोई ठोस तरीका नहीं है। ट्विटर हाल ही में खोज के लिए लुसीन के साथ चला गया है और किसी भी अपडेट पर सिर्फ अपनी अनुक्रमणिका में लिखकर प्रभावी रूप से वास्तविक समय खोज रहा है। उनकी अनुक्रमणिका पूरी तरह से स्मृति में रहती है, इसलिए इंडेक्स को अद्यतन/पढ़ना कोई परिणाम नहीं होता है और तत्काल होता है, जब तक एक समय में केवल एक लेखक ही लिखा जाता है, तब तक एक ल्यूसीन इंडेक्स हमेशा पढ़ा जा सकता है। Linkedin से दान कोड -

+0

"तुरंत होता है" -> विलंबता अभी भी लगभग 10 सेकंड हैं – Karussell

1

चेक बाहर this wiki page

+0

कृपया अपने उत्तर में केवल एक लिंक से अधिक शामिल करें। प्रासंगिक जानकारी खींचें ताकि सभी को क्लिक न करना पड़े, और यदि लिंक मर जाता है तो इसका अभी भी कुछ मूल्य है। – agf

संबंधित मुद्दे