2008-10-09 15 views
17

मैं कुछ दस्तावेज़ों को अनुक्रमणित करने के लिए Lucene.Net का उपयोग करता हूं। मैं उपयोगकर्ता को कुछ पंक्तियां दिखाना चाहता हूं कि यह दस्तावेज़ परिणाम सेट में क्यों है। जैसे कि जब आप खोज के लिए Google का उपयोग करते हैं और यह लिंक दिखाता है और लिंक के बाद कीवर्ड को हाइलाइट किए गए कुछ पंक्तियां होती हैं। कोई विचार?Lucene.Net खोज कीवर्ड को हाइलाइट करने के लिए खोज परिणाम

उत्तर

23

आप एक परिणाम है जब आप अनुक्रमित पाठ एक विधि इस के समान के माध्यम से भेजना आपकी क्वेरी के साथ प्राप्त कर सकते हैं:

public string GeneratePreviewText(Query q, string text) 
{ 
    QueryScorer scorer = new QueryScorer(q); 
    Formatter formatter = new SimpleHTMLFormatter(highlightStartTag, highlightEndTag); 
    Highlighter highlighter = new Highlighter(formatter, scorer); 
    highlighter.SetTextFragmenter(new SimpleFragmenter(fragmentLength)); 
    TokenStream stream = new StandardAnalyzer().TokenStream(new StringReader(text)); 
    return highlighter.GetBestFragments(stream, text, fragmentCount, fragmentSeparator); 
} 
+0

आप एक मणि दोस्त हैं। धन्यवाद। –

+0

मुझे सॉर्ट किया गया, लेकिन टोकनस्ट्रीम के पहले पैरामीटर के रूप में एक मनमानी स्ट्रिंग मान पास करना पड़ा। – ctrlplusb

+1

मुझे उन वस्तुओं को खोजने के लिए Lucene.Net.Contrib nuget पैकेज जोड़ना पड़ा। –

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