Как сказал предыдущий ответчик, вы должны использовать либо Highlighter, либо FastVectorHighlighter из contrib.
Вот пример использования Highlighter lib для получения выделенных фрагментов:
Formatter formatter = new SimpleHTMLFormatter("<span><b>", "</b></span>");
Lucene.Net.Highlight.Scorer scorer = new QueryScorer(query, field);
Lucene.Net.Highlight.Encoder encoder = new SimpleHTMLEncoder();
var highlighter = new Highlighter(formatter, encoder, scorer);
highlighter.SetTextFragmenter(new SimpleFragmenter(100));
string[] fragments =
highlighter.GetBestFragments(DefaultAnalyzer, field, doc.Get(field), 3);
Некоторые ошибки, связанные с маркерами:
Чтобы выделить поле, его необходимо добавить в индекс с помощью опции Field.Store.YES
Ваш запрос должен быть переписан перед передачей на маркер
- Анализатор, который вы передаете в подсветку, должен быть таким же, какой вы используете для индексации и поиска