17

我使用 Lucene.Net 来索引一些文档。我想向用户展示几行关于为什么该文档在结果集中的原因。就像您使用谷歌搜索时一样,它会显示链接,然后链接后面有几行突出显示了关键字。有任何想法吗?

4

1 回答 1

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);
}
于 2008-10-09T22:38:44.587 回答