2010-10-15 19 views
17

जब मैं डिस्क पर Solr के सूचकांक फ़ाइलों को हटाने, (/solr/data/index और solr/data/spellchecker में पाया), Solr एक अपवाद फेंकता है जब भी मैं इसे करने के लिए एक अनुरोध बनाने की कोशिश:सोलर हटाए गए इंडेक्स फ़ाइलों से कैसे पुनर्प्राप्त करें?

java.lang.RuntimeException: java.io.FileNotFoundException : कोई खंडों * फ़ाइल [email protected]/.../solr/data/index में पाया:

एक ही रास्ता है कि मैं इस से उबरने के लिए मिल गया है करने के लिए "बीज" data है अन्यत्र से सूचकांक फ़ाइलों के साथ निर्देशिका। यह वास्तव में कोई फर्क नहीं पड़ता कि यह कहां लगता है। एक बार ऐसा करने के बाद, मैं स्कीमा को पुनः लोड करने और अनुक्रमणिका को पुन: उत्पन्न करने के लिए एक क्वेरी चला सकता हूं। क्या यह काम करना चाहिए? ऐसा लगता है कि स्क्रॉल से उन फ़ाइलों को पुन: उत्पन्न करने के लिए हलर को बताने का एक तरीका होना चाहिए। हो सकता है कि मैं सिर्फ अपनी धारणा में गलत हूं कि ये फ़ाइलें एप्लिकेशन का हिस्सा नहीं हैं (नाम "डेटा" द्वारा उल्लिखित)?

उत्तर

48

सोलर स्टार्टअप पर उस अपवाद को फेंक देगा यदि index निर्देशिका मौजूद है लेकिन खाली है। हालांकि यदि आप निर्देशिका को हटाते हैं, तो सोलर इसे स्टार्टअप पर और खाली सेगमेंट फ़ाइलों को बना देगा।

+1

यह मेरी समस्या थी, सिर्फ दूसरों के लिए एक नोट, मुझे 1) रोकना बंद करना, 2) निर्देशिका को हटाएं, 3) सौर शुरू करें। जब मैंने हलर चलाया और निर्देशिका हटा दी और एक इंडेक्स को मजबूर करने की कोशिश की तो यह अभी भी असफल हो जाएगा। मदद के लिए धन्यवाद =] –

+0

यह निश्चित रूप से समाधान है! अच्छी पकड़ :] – tfont

0

यदि आप रेल पर सनस्पॉट सोलर का उपयोग कर रहे हैं, तो सनस्पॉट डाटाबेस से सभी डेटा को सोलर में रीइंडेक्स कर सकता है। हालांकि, सोलर स्टैंडअलोन को पता नहीं चलेगा कि डेटा को रेनडिएक्स में खींचें। आपको डेटा के बैकअप की आवश्यकता होगी।

0

यदि आप अनुक्रमणिका हटाते हैं तो समस्या सेगमेंट फ़ाइल के साथ समस्या हो सकती है। फाइलें शारीरिक रूप से हटा दी गई हैं लेकिन सोलर के रैम या कैश में मौजूद हैं। भौतिक रूप से सोलर इंडेक्स फ़ाइलों से सीधे फ़ाइलों को हटाने से बचें। हटाएँ क्वेरी का उपयोग सूचकांक को हटाने के लिए, कर इस सूचकांक के क्षेत्रों को बदल देगा और आप Solr को पुनः आरंभ करने

संबंध

रजत

0

अपवाद FileNotFoundException संकेत है कि एक प्रयास फ़ाइल खोलने के लिए नहीं करना होगा निर्दिष्ट पथनाम द्वारा निर्दिष्ट विफल रहा है। तो या तो आपकी अनुक्रमणिका अमान्य या दूषित है।

NIOFSDirectory कक्षा का उपयोग इंडेक्स फ़ाइलों को पढ़ने और लिखने के लिए किया जाता है। निर्देशिका नामित स्थान पर बनाई गई है यदि यह अभी तक मौजूद नहीं है।

तो आप शायद चाहिए:

  1. index निर्देशिका हटाएं या बैकअप से डेटा को पुनर्स्थापित।
  2. सर्वर को पुनरारंभ करें (या कम से कम कॉन्फ़िगर को पुनः लोड करें)।
संबंधित मुद्दे