2010-10-13 10 views
5

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

मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या मैं दस्तावेज़ के फ़ील्ड को वास्तव में लुसीन में दस्तावेज़ को हटाए बिना अपडेट कर सकता हूं।

धन्यवाद।

उत्तर

0

मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या मैं दस्तावेज़ के फ़ील्ड को वास्तव में लुसीन में दस्तावेज़ को हटाए बिना अपडेट कर सकता हूं।

मुझे पहला प्रश्न नहीं समझता है, लेकिन आप लुसीन में एक दस्तावेज़ अपडेट नहीं कर सकते हैं। आपको हटाना और पुनः डालना होगा।

+0

हाय थिलो, मैं बस मैदान से अपनी अनुक्रमणिका खोजना चाहता हूं। उदाहरण के लिए, मैं अपने सूचकांक में किसी विशेष फ़ील्ड [नाम का नाम] का मूल्य प्राप्त करना चाहता हूं। आमतौर पर आप दस्तावेज़.getField ("name") द्वारा करते हैं यदि आप दस्तावेज़ जानते हैं लेकिन मैं इंडेक्स खोजते समय इसे काम नहीं कर पा रहा हूं। – Sunil

+1

Document.getField केवल तभी काम करेगा जब फ़ील्ड संग्रहीत हो (और केवल इंडेक्स नहीं)। – Thilo

4

आप कोलन सिंटैक्स i.e. name:john के साथ किसी विशेष फ़ील्ड के भीतर शब्दों की खोज कर सकते हैं।

लेकिन क्योंकि बहुत से इंडेक्स में सिर्फ एक फ़ील्ड है जिसे आप खोजना चाहते हैं, एक डिफ़ॉल्ट फ़ील्ड है, यदि आप केवल john खोजते हैं। आप यह है कि जो क्षेत्र निर्धारित कर सकते हैं जब आप अपने QueryParser instanciate

QueryParser parser = new QueryParser(Version.LUCENE_30, "name", anAnalyzer); 
Query q = parser.parse("john"); 

आप एक उपयोगकर्ता के प्रवेश किया क्वेरी स्ट्रिंग को पार्स करने के बजाय प्रोग्राम के रूप में आपके प्रश्नों बनाने के लिए है, तो आप भी उदाहरण के लिए, स्पष्ट रूप से क्षेत्र में बताने की चाहते हैं:

Query q = new TermQuery(new Term("name", "john")); 

लिंक: Using fields in Lucene queries (Lucene Query Syntax) | QueryParser Javadoc | TermQuery Javadoc

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