2008-10-09 190 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