सरल प्रश्न के लिए खेद है, लेकिन ऐसा कोई स्पष्ट तरीका प्रतीत नहीं होता है। प्रलेखन के अनुसार, स्मृति में IndexWriter
का एक उदाहरण रखने की अनुशंसा की जाती है जिसे अद्यतनों के लिए बार-बार उपयोग किया जा सकता है, क्योंकि प्रत्येक परिवर्तन के लिए खोलने और बंद करने के विपरीत (जो अधिक महंगा है)।मैं कैसे जांच सकता हूं कि ल्यूसीन इंडेक्सवाइटर उदाहरण वैध/खुला है या नहीं?
हालांकि, दस्तावेज यह भी बताता है कि IndexWriter
को अपवाद होने पर बंद किया जाना चाहिए (उदा। OutOfMemoryException
)।
इसलिए, मुझे यह जांचने के लिए कुछ तरीका चाहिए कि IndexWriter
का मेरा उदाहरण वैध है या नहीं, मान लीजिए कि इसे किसी अन्य ऑपरेशन द्वारा बंद किया जा सकता है।
मुझे एहसास है कि अगर मैं इसे बंद होने पर इसका उपयोग करने का प्रयास करता हूं तो मुझे अपवाद मिलेगा, लेकिन असफल होने की बजाय, मैं यह देखने के लिए जांचना चाहता हूं कि मुझे इसकी आवश्यकता होने से पहले नया IndexWriter
बनाने की आवश्यकता है, इसलिए कोई विफलता नहीं होती है।
मुझे लगता है कि यह एक साधारण IsOpen
संपत्ति/विधि इतना स्पष्ट जोड़ होगा।
विचार:
मुझे लगता है कि अगर मैं यह सुनिश्चित कर सकता है कि कि मेरी कक्षा केवल IndexWriter
बंद करने में सक्षम बात है, मैं बस null
के लिए सेट कर सकता है जब यह बंद हो गया और बस यकीन है कि यह है करने के लिए जाँच है जब भी मैं इसका उपयोग करने के लिए जाता हूं null
नहीं, हालांकि यह उन मामलों को संभाल नहीं पाएगा जहां IndexWriter
स्वयं बंद हो जाता है (यदि ऐसा मामला अब या भविष्य में संभव है)।
एक और विचार यह है कि मैं कोशिश/पकड़ ब्लॉक में इसका उपयोग करने का प्रयास लपेट सकता हूं और यह संकेत देने के लिए अपवाद का उपयोग कर सकता हूं कि इसे फिर से खोलने की जरूरत है, लेकिन यह बहुत ही कुशल/सुरुचिपूर्ण प्रतीत नहीं होता है। IndexWriter
की वैधता का परीक्षण करने के लिए मैं किस विधि का उपयोग करूंगा?