2009-11-26 17 views
6

मेरी परियोजना में हम पूर्ण टेक्स्ट खोज के लिए लुसीन 2.4.1 का उपयोग करते हैं। यह एक जे 2 ईई प्रोजेक्ट है, इंडेक्सशियर एक बार बनाया गया है। पृष्ठभूमि में, सूचकांक हर दो मिनट (जब सामग्री बदलता है) ताज़ा किया जाता है। उपयोगकर्ता पृष्ठ पर एक खोज तंत्र के माध्यम से सूचकांक खोज सकते हैं।लुसीन खोज परिणामों को कैशिंग लग रहा है - क्यों?

समस्या यह है कि लुसीन द्वारा लौटाए गए परिणाम किसी भी तरह से कैश किए जाते हैं। 6 परिणाम नहीं दिए हैं, Luke मैं देख रहा हूँ का उपयोग कर

  • सूचकांक ताजा है, वहाँ अब कर रहे हैं कि 8 परिणाम -

    • मैं 'कीवर्ड' के लिए खोज आवेदन शुरू और:

      इस परिदृश्य मैंने देखा है 'कीवर्ड' से पूछने के लिए,

    • मैं एप्लिकेशन का उपयोग करके फिर से खोज करता हूं, फिर से 6 परिणाम लौटा दिए जाते हैं।

    मैंने अपनी कॉन्फ़िगरेशन का विश्लेषण किया और कहीं भी कैशिंग नहीं मिला है। मैंने खोज को डीबग किया है, और आउट कोड में कोई कैशिंग नहीं है, searcher.search 6 परिणाम देता है।

    क्या ल्यूसीन कैश आंतरिक रूप से किसी भी तरह से परिणाम देता है? मुझे किस गुण आदि की जांच करनी चाहिए?

  • उत्तर

    10

    इंडेक्स राइटर्स द्वारा किए गए परिवर्तनों को एक इंडेक्स के विरुद्ध देखने के लिए जिसके लिए आपके पास एक खुला इंडेक्स रीडर है, नवीनतम परिवर्तन देखने के लिए IndexReader.reopen() पर कॉल करना सुनिश्चित करें।

    यह भी सुनिश्चित करें कि आपके IndexWriter एक स्पष्ट प्रतिबद्ध(), एक करीबी(), या ऑटोकॉमिट सेट को सत्य के माध्यम से परिवर्तन कर रहा है।

    +1

    मैंने इसे हर बार इंडेक्स अपडेट होने पर IndexSearcher पुनर्निर्माण करके हल किया। इस मुद्दे को हल किया। मुझे लगता है कि कवर के तहत यह बहुत कुछ करता है जो आपने कहा था। –

    +4

    फिर से खोलना() अधिक कुशल है, क्योंकि इसे पुन: प्रयास करने से सभी सेगमेंट फ़ाइलों को पढ़ा जा सकता है, लेकिन फिर से खोलना() को केवल उन खंडों को पढ़ना है जिन्हें अंतिम खुले के बाद अपडेट किया गया है। – Cowan

    1

    2.9.0 से पहले के संस्करणों के साथ, लुसीन ने स्वचालित रूप से प्रश्नों के परिणाम कैश किए। बाद में रिलीज के साथ कोई कैशिंग नहीं है जब तक कि आप अपनी क्वेरी को क्वेरीफिल्टर में लपेटें और फिर परिणाम को कैशिंगप्रैपरफ़िल्टर में लपेटें। आप एक रिलीज पर स्विचिंग पर विचार कर सकते हैं> = 2.9.0 यदि सूचकांक को फिर से खोलना एक समस्या बन जाती है

    1

    एक और नोट: इंडेक्स रीडर को रीयल-टाइम अन्य धागे अद्यतन दस्तावेज़ों को खोजने के लिए, जब इंडेक्स रीडर प्रारंभ होता है, पैरामीटर "read- केवल "झूठा होना है। अन्यथा, विधि फिर से खोलें() काम नहीं करेगा।

    संबंधित मुद्दे