Lucene.Net Результат поиска, чтобы выделить ключевые слова для поиска

Я использую Lucene.Net для индексации некоторых документов. Я хочу показать пользователю пару строк о том, почему этот документ находится в результирующем наборе. точно так же, как при использовании Google для поиска, и он показывает ссылку, а за ней следует несколько строк с выделенными ключевыми словами. любые идеи?

Ответ 1

Когда у вас есть результат, вы можете получить проиндексированный текст, передав его вместе с вашим запросом с помощью метода, аналогичного этому:

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);
}