2008-10-09 116 views
17

我使用Lucene.Net來索引一些文檔。我想向用戶展示幾行文字,說明爲什麼該文檔在結果集中。就像當您使用谷歌進行搜索時一樣,它會顯示鏈接,然後顯示鏈接,然後會突出顯示幾行關鍵字。 有什麼想法?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

你是一個寶石的伴侶。謝謝。 – 2008-10-09 23:33:43