2013-03-05 3 views
6

मैं ल्यूसीन के लिए नया हूं और का उपयोग कर Query में कच्ची स्ट्रिंग को पार्स करने का प्रयास कर रहा हूं।लुसीन क्वेरीपार्सर को विश्लेषक की आवश्यकता क्यों है

मैं सोच रहा था, QueryParser.Parse() विधि को विश्लेषक पैरामीटर की आवश्यकता क्यों है?

तो विश्लेषण कुछ क्वेरी से कोई लेना देना नहीं है, तो एक Analyzer निर्दिष्ट किया जाना चाहिए है, जब साथ ही नियमित रूप से Query वस्तुओं के साथ काम कर (TermQuery, BooleanQuery आदि), और यदि नहीं, तो क्यों QueryParser ऐसा करना आवश्यक हो जाता है?

उत्तर

10

अनुक्रमण करते समय, लुसेन टेक्स्ट को परमाणु इकाइयों (टोकन) में विभाजित करता है। इस चरण के दौरान कई चीजें हो सकती हैं (उदा। कम करने, रोकने, रोकने के लिए, आदि)। अंतिम परिणाम एक शब्द है।

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

प्रश्न: TermQuery क्यों विश्लेषक की आवश्यकता नहीं है?
ए: QueryParser ऑब्जेक्ट पार्स क्वेरी स्ट्रिंग और TermQuery उत्पन्न करता है (अन्य प्रकार के प्रश्न भी उत्पन्न कर सकता है, उदाहरण के लिए PhraseQuery)। TermQuery में पहले से ही उसी आकार में वे शब्द हैं जो वे इंडेक्स में हैं। यदि आप (प्रोग्रामर के रूप में) पूरी तरह से सुनिश्चित हैं कि आप क्या कर रहे हैं, तो आप TermQuery स्वयं बना सकते हैं - लेकिन ऐसा लगता है कि आप क्वेरी पार्सिंग के सटीक अनुक्रम को जानते हैं और आप जानते हैं कि इंडेक्स में शब्द कैसा दिखते हैं।

प्रश्न: BooleanQuery क्यों विश्लेषक की आवश्यकता नहीं है?
ए: BooleanQuery ऑपरेटरों का उपयोग करके अन्य प्रश्नों में शामिल हो जाता है (AND/OR/MUST/SHOULD, आदि)। यह किसी अन्य प्रश्न के बिना वास्तव में उपयोगी नहीं है।

यह बहुत सरलीकृत उत्तर है। मैं अत्यधिक Introduction to Information Retrieval पुस्तक पढ़ने की सलाह देता हूं; इसमें सिद्धांत शामिल है जिस पर ल्यूसीन (और अन्य समान ढांचे) लिखा गया है। यह पुस्तक मुफ्त में ऑनलाइन उपलब्ध है।

+0

धन्यवाद लेकिन यह समझाता नहीं है कि विश्लेषक को निर्दिष्ट क्यों करना आवश्यक है जब पूछताछ करने के लिए स्ट्रिंग को पार्स करना और पूछताछ के दौरान हमेशा नहीं। – haim770

+0

मेरा जवाब संपादित करें, मुझे बताएं कि क्या यह पर्याप्त स्पष्ट नहीं है या कुछ भी याद करता है। – mindas

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