ASP.NET के साथ Lucene.Net का उपयोग करते समय, मैं कल्पना कर सकता हूं कि एक वेब अनुरोध इंडेक्स को अपडेट ट्रिगर कर सकता है जबकि एक अन्य वेब अनुरोध खोज कर रहा है। क्या लुसीन.Net ने समवर्ती पहुंच को प्रबंधित करने की क्षमता बनाई है, या क्या मुझे इसे प्रबंधित करना है, "किसी अन्य प्रक्रिया द्वारा उपयोग किए जाने" त्रुटियों से बचने के लिए?क्या लुसीन.Net एक ही इंडेक्स तक पहुंचने वाले एकाधिक थ्रेड प्रबंधित करता है, एक इंडेक्सिंग जबकि दूसरा खोज रहा है?
संपादित करें: दस्तावेज़ और प्रयोग पढ़ने के बाद, मुझे लगता है कि मैंने सीखा है: दो मुद्दे हैं, थ्रेड सुरक्षा और समरूपता। मल्टीथ्रेडिंग "सुरक्षित" है कि आप इंडेक्स में कुछ भी बुरा नहीं कर सकते हैं। लेकिन, यह एक ही समय में इंडेक्स पर लॉक रखने वाली एक वस्तु की लागत पर सुरक्षित है। दूसरी वस्तु साथ आएगी और एक अपवाद फेंक देगा। इसलिए, आप एक खोज को खुला नहीं छोड़ सकते हैं और किसी अन्य थ्रेड में लेखक को इंडेक्स को अपडेट करने में सक्षम होने की उम्मीद कर सकते हैं। और यदि कोई थ्रेड इंडेक्स को अपडेट करने में व्यस्त है, तो एक खोजकर्ता बनाने की कोशिश विफल हो जाएगी।
इसके अलावा, शोधकर्ता इंडेक्स को देखते हैं क्योंकि यह उस समय था जब वे इसे खोलते थे, इसलिए यदि आप उन्हें चारों ओर रखते हैं, और इंडेक्स अपडेट करते हैं, तो वे अपडेट नहीं देख पाएंगे।
मैं चाहता था कि मेरे खोजकर्ता नवीनतम अपडेट देखें।
मेरा डिज़ाइन, और ऐसा लगता है कि अब तक काम कर रहा है, यह है कि मेरे लेखकों और खोजकर्ता लॉक साझा करते हैं, ताकि वे असफल न हों - वे बस प्रतीक्षा करें - जब तक कि वर्तमान लेखन या खोज न हो जाए।
क्या आप समझा सकते हैं कि आपने ताले कैसे लगाए? क्या आप पढ़ने और लिखने वाले ताले या सिर्फ एक साझा लॉक का उपयोग करते हैं? –
एक साझा लॉक। मैंने लिखा है कि मैंने क्या किया: http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx –
आप अपने प्रश्न में जो कहते हैं वह गलत है: "तो, आप कर सकते हैं एक खोज खुला नहीं छोड़ें और किसी अन्य थ्रेड में एक लेखक को इंडेक्स को अपडेट करने में सक्षम होने की उम्मीद करें। और यदि कोई थ्रेड इंडेक्स को अपडेट करने में व्यस्त है, तो एक खोजकर्ता बनाने की कोशिश विफल हो जाएगी। " जैसा कि अन्य उत्तरों में बताया गया है: "एक इंडेक्स लेखक या पाठक ल्यूसीन इंडेक्स फाइलों को संपादित कर सकता है जबकि खोज चल रही है" और इसके विपरीत। –