में अपेक्षाकृत छोटे सूचकांक दस्तावेजों पर बड़े खोज प्रश्नों को संभालना मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जहां हम अपेक्षाकृत छोटे दस्तावेज़/वाक्यों को अनुक्रमित करते हैं, और हम इन दस्तावेजों को क्वेरी के रूप में बड़े दस्तावेज़ों का उपयोग करना चाहते हैं। यहाँ एक अपेक्षाकृत सरल उदाहरण है: मैं का अनुक्रमण कर रहा हूँ दस्तावेज़:ल्यूसीन
docId : 1
text: "back to black"
और मैं निम्नलिखित इनपुट का उपयोग क्वेरी करना चाहते हैं:
"Released on 25 July 1980, Back in Black was the first AC/DC album recorded without former lead singer Bon Scott, who died on 19 February at the age of 33, and was dedicated to him."
Lucene में इस के लिए सबसे अच्छा तरीका क्या है? सरल उदाहरणों के लिए, जहां मैं जो पाठ खोजना चाहता हूं वह इनपुट क्वेरी है, इनपुट क्वेरी है, मुझे QueryParser.parse (QueryParser.escape (... मेरा बड़ा इनपुट ...) का उपयोग करने से अपने स्वयं के विश्लेषक + एक PhraseQuery का उपयोग करके बेहतर परिणाम मिलते हैं।)) - जो एक बड़ा बूलियन/टर्म क्वेरी बनाने के समाप्त होता है।
लेकिन मैं एक असली दुनिया उदाहरण के लिए एक PhraseQuery दृष्टिकोण का उपयोग करने की कोशिश नहीं कर सकते हैं, मुझे लगता है मैं ShingleAnalyzerWrapper की तरह एक शब्द एन-ग्राम दृष्टिकोण का उपयोग करने के लिए है, लेकिन के रूप में अपने इनपुट दस्तावेजों काफी बड़ा हो सकता है साहचर्य कठिन हो जाएगा संभाल करने के लिए ...
दूसरे शब्दों में, मैं अटक कर रहा हूँ और किसी भी विचार बहुत सराहना की जाएगी :)
पी एस मैंने इसका जिक्र नहीं किया लेकिन छोटे दस्तावेजों को अनुक्रमणित करने के साथ एक परेशान चीज में से एक यह भी है कि "मानदंड" के कारण -वृत्त (फ्लोट) केवल 1 बाइट पर एन्कोड किया जा रहा है, सभी 3-4 शब्द वाक्यों को समान मान मान मिलता है, इसलिए खोज "एबीसी" जैसे वाक्य एक ही स्कोर के साथ "एबीसी" और "एबीसीडी" परिणाम दिखाते हैं।
धन्यवाद!
हाँ, मैंने इसके बारे में सोचा लेकिन मेरे पास 200k से अधिक वाक्यों का मिलान है, मेरे पहले परीक्षण (इन-मेमोरी इंडेक्स का उपयोग किए बिना) काफी धीमे थे। लेकिन हो सकता है कि यह सही दृष्टिकोण है, मैं जांचूंगा कि लोचदार खोज कैसे करता है :), क्या आपको लगता है कि मैं उचित क्वेरीिंग के साथ इसे अन्य तरीके से काम नहीं कर सकता? –