इंडेक्सशियर एक विशेष निर्देशिका संरचना की अपेक्षा करता है, जिसे यह नहीं मिल सकता है क्योंकि कोई सेगमेंट लिखा नहीं गया है (जब आप किसी इंडेक्सवाइटर में दस्तावेज़ जोड़ते हैं, तो वे स्मृति में कतारबद्ध होते हैं, और जब उपयोग की गई स्मृति की मात्रा किसी दिए गए थ्रेसहोल्ड तक पहुंच जाती है या जब प्रतिबद्ध() कहा जाता है, इन इन-मेमोरी डेटा संरचनाओं को डिस्क पर फ़्लश किया जाता है जिसके परिणामस्वरूप लुसीन एक सेगमेंट को कॉल करता है)।
आपको अपने इंडेक्स खोजकर्ता को खोलने से पहले प्रतिबद्धता को कॉल करके स्पष्ट रूप से सेगमेंट बनाना है।
index = RAMDirectory.new
writer = IndexWriter.new(index, StandardAnalyzer.new(Version::LUCENE_30),IndexWriter::MaxFieldLength::UNLIMITED)
writer.commit()
IndexSearcher.new(index)
इसके अलावा इस IndexWriter निर्माता Lucene 3.4 में हटाई गई है, यदि आप इसके बजाय IndexWriterConfig आप IndexWriter कॉन्फ़िगर करने के लिए उपयोग करना चाहिए: इसके बजाय स्पष्ट करने को बुलाने की
iwConfig = IndexWriterConfig.new(Version::LUCENE_34, StandardAnalyzer.new(Version::LUCENE_34))
writer = IndexWriter.new(index, iwConfig)
के रूप में काम करता है और बंद संसाधनों का उपयोग आप लुसीन का किस संस्करण का उपयोग कर रहे हैं? मैं लुसीन 3.0.3 (नवीनतम 3.0 रिलीज) का उपयोग कर अपनी समस्या का पुन: उत्पन्न नहीं कर सकता। Pacman के अनुसार – jpountz
3.4.0 – Reactormonk