2009-08-18 10 views

उत्तर

16

क्या हार्ड डिस्क पर रखने के बजाय इंडेक्स को रैम में रखने का कोई तरीका है?

तेजी अनुक्रमण प्रदर्शन के लिए आम तौर पर RAMDirectory वर्ग

SampleUsage here

इसके अलावा Lucene पूछे जाने वाले प्रश्न

ImproveSearchingSpeed

से

का उपयोग करना दस्तावेज गिनती के बजाए राम उपयोग से फ्लश करना सबसे अच्छा है और जितना आप कर सकते हैं उतना रैम बफर का उपयोग कर सकते हैं।

Also check this question:

संपादित करें:उत्तर: RamDirectory, एपीआई कहते हैं RamDirectory एक स्मृति-निवासी निर्देशिका कार्यान्वयन है।, यह निर्देशिका द्वारा निर्दिष्ट रैम में केवल उन्हीं सूचकांक रहता RAMDirecory

उत्तर: कैशिंग मेरी जानकारी में, Lucene फिल्टर कृपया देखो @CachingWrapperFilter के साधन और QueryWrapperFilter

+0

धन्यवाद आपके विस्तृत उत्तर के लिए बहुत कुछ। मेरे पास दो और प्रश्न हैं। सबसे पहले, मैंने पढ़ा कि ल्यूसीन कैशिंग करता है, जो इंडेक्स को आंशिक रूप से रैम में रखेगा। लेकिन रामडायरेक्टरी अलग है, है ना? क्या यह रैम में सभी इंडेक्स रखता है? दूसरा, मैंने setRAMBufferSizeMB देखा, जो मुझे समझा गया था कि यह खोज के बजाय अनुक्रमण को तेज करने के लिए था। क्या यह खोज तेज भी करता है? – elif

+0

ओह, मेरी पोस्ट – Narayan

+0

संपादित करें "ImproveSearchingSpeed" से: "indexReader को केवल पढ़ने के साथ खोलें = सच", क्या आप जानते हैं कि लुसीन 4+ में ऐसा कैसे करें? मुझे कोई उदाहरण नहीं मिला ... – Gevorg

1

एक रैम डिस्क इसके लिए एक समाधान हो सकता है। एक मिनी-हाउटो http://www.vanemery.com/Linux/Ramdisk/ramdisk.html पर उपलब्ध है। रैम डिस्क को अपनी अनुक्रमणिका निर्देशिका के रूप में माउंट करें, और आपको किया जाना चाहिए।

+0

ध्यान दें कि खोज परिणामों कैश बड़े के लिए इंडेक्स, "हार्डवेयर" रैम डिस्क भी उपलब्ध हैं ... मूल रूप से एक हार्ड ड्राइव इंटरफेस के साथ डिवाइस, लेकिन platters के बजाय डीआरएएम से भरा है। – erickson

+0

आपके उत्तर के लिए धन्यवाद। हमने इसे माना। लेकिन हम उस विकल्प का उपयोग नहीं करते हैं क्योंकि हमारे पास ऑपरेटिंग सिस्टम में इतना अधिक अनुभव नहीं है। हमें लगता है कि यह हमें सूचकांक का निरीक्षण/निगरानी करने के लिए कम नियंत्रण और कम क्षमता प्रदान करेगा। – elif

1

RAMDirectory दस्तावेज़ीकरण देखें। यहां एक basic usage example है। यह केवल तभी काम करेगा जब सूचकांक काफी छोटा हो।

+0

और उत्तर देने के लिए धन्यवाद। आकार क्या छोटा होगा? सूचकांक लगभग 20 एमबी है और हम इसे 5 गुना से अधिक होने की उम्मीद नहीं करते हैं। क्या यह काफी छोटा है? – elif

+0

आपका स्वागत है। एक 100 एमबी वास्तव में काफी छोटा है। आपको अभी भी उचित जेवीएम स्टैक आकार सेटिंग्स के साथ डिस्क इंडेक्स का उपयोग करने पर विचार करना चाहिए। जब भी आप एप्लिकेशन को पुनरारंभ करते हैं, तो यह आपको फिर से अनुक्रमित करने के लिए सहेज लेगा, और RAMDirectory जितना तेज़ हो सकता है। यह भी देखें: http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and- खोज गति के बारे में सोल्डर। –

+0

जब मैं एप्लिकेशन को पुनरारंभ करता हूं तो यह रीइंडेक्स क्यों करता है? मैंने सोचा कि मैं RAMDirectory का उपयोग कर रैम में हार्ड डिस्क पर इंडेक्स पढ़ सकता हूं। क्या मुझे हर बार रीइंडेक्स करना होगा जब मैं रैम में इंडेक्स पढ़ना चाहता हूं? लिंक के लिए धन्यवाद। – elif

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