क्या हार्ड डिस्क पर रखने के बजाय इंडेक्स को रैम में रखने का कोई तरीका है?लुसीन में तेज़ खोज - क्या पूरे सूचकांक को रैम में रखने का कोई तरीका है?
हम तेजी से खोज करना चाहते हैं।
क्या हार्ड डिस्क पर रखने के बजाय इंडेक्स को रैम में रखने का कोई तरीका है?लुसीन में तेज़ खोज - क्या पूरे सूचकांक को रैम में रखने का कोई तरीका है?
हम तेजी से खोज करना चाहते हैं।
क्या हार्ड डिस्क पर रखने के बजाय इंडेक्स को रैम में रखने का कोई तरीका है?
तेजी अनुक्रमण प्रदर्शन के लिए आम तौर पर RAMDirectory वर्ग
SampleUsage here
इसके अलावा Lucene पूछे जाने वाले प्रश्नसे
का उपयोग करना दस्तावेज गिनती के बजाए राम उपयोग से फ्लश करना सबसे अच्छा है और जितना आप कर सकते हैं उतना रैम बफर का उपयोग कर सकते हैं।
संपादित करें:उत्तर: RamDirectory, एपीआई कहते हैं RamDirectory एक स्मृति-निवासी निर्देशिका कार्यान्वयन है।, यह निर्देशिका द्वारा निर्दिष्ट रैम में केवल उन्हीं सूचकांक रहता RAMDirecory
उत्तर: कैशिंग मेरी जानकारी में, Lucene फिल्टर कृपया देखो @CachingWrapperFilter के साधन और QueryWrapperFilter
एक रैम डिस्क इसके लिए एक समाधान हो सकता है। एक मिनी-हाउटो http://www.vanemery.com/Linux/Ramdisk/ramdisk.html पर उपलब्ध है। रैम डिस्क को अपनी अनुक्रमणिका निर्देशिका के रूप में माउंट करें, और आपको किया जाना चाहिए।
ध्यान दें कि खोज परिणामों कैश बड़े के लिए इंडेक्स, "हार्डवेयर" रैम डिस्क भी उपलब्ध हैं ... मूल रूप से एक हार्ड ड्राइव इंटरफेस के साथ डिवाइस, लेकिन platters के बजाय डीआरएएम से भरा है। – erickson
आपके उत्तर के लिए धन्यवाद। हमने इसे माना। लेकिन हम उस विकल्प का उपयोग नहीं करते हैं क्योंकि हमारे पास ऑपरेटिंग सिस्टम में इतना अधिक अनुभव नहीं है। हमें लगता है कि यह हमें सूचकांक का निरीक्षण/निगरानी करने के लिए कम नियंत्रण और कम क्षमता प्रदान करेगा। – elif
RAMDirectory दस्तावेज़ीकरण देखें। यहां एक basic usage example है। यह केवल तभी काम करेगा जब सूचकांक काफी छोटा हो।
और उत्तर देने के लिए धन्यवाद। आकार क्या छोटा होगा? सूचकांक लगभग 20 एमबी है और हम इसे 5 गुना से अधिक होने की उम्मीद नहीं करते हैं। क्या यह काफी छोटा है? – elif
आपका स्वागत है। एक 100 एमबी वास्तव में काफी छोटा है। आपको अभी भी उचित जेवीएम स्टैक आकार सेटिंग्स के साथ डिस्क इंडेक्स का उपयोग करने पर विचार करना चाहिए। जब भी आप एप्लिकेशन को पुनरारंभ करते हैं, तो यह आपको फिर से अनुक्रमित करने के लिए सहेज लेगा, और RAMDirectory जितना तेज़ हो सकता है। यह भी देखें: http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and- खोज गति के बारे में सोल्डर। –
जब मैं एप्लिकेशन को पुनरारंभ करता हूं तो यह रीइंडेक्स क्यों करता है? मैंने सोचा कि मैं RAMDirectory का उपयोग कर रैम में हार्ड डिस्क पर इंडेक्स पढ़ सकता हूं। क्या मुझे हर बार रीइंडेक्स करना होगा जब मैं रैम में इंडेक्स पढ़ना चाहता हूं? लिंक के लिए धन्यवाद। – elif
धन्यवाद आपके विस्तृत उत्तर के लिए बहुत कुछ। मेरे पास दो और प्रश्न हैं। सबसे पहले, मैंने पढ़ा कि ल्यूसीन कैशिंग करता है, जो इंडेक्स को आंशिक रूप से रैम में रखेगा। लेकिन रामडायरेक्टरी अलग है, है ना? क्या यह रैम में सभी इंडेक्स रखता है? दूसरा, मैंने setRAMBufferSizeMB देखा, जो मुझे समझा गया था कि यह खोज के बजाय अनुक्रमण को तेज करने के लिए था। क्या यह खोज तेज भी करता है? – elif
ओह, मेरी पोस्ट – Narayan
संपादित करें "ImproveSearchingSpeed" से: "indexReader को केवल पढ़ने के साथ खोलें = सच", क्या आप जानते हैं कि लुसीन 4+ में ऐसा कैसे करें? मुझे कोई उदाहरण नहीं मिला ... – Gevorg