#lucene #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);
}
Комментарии:
1. Разобрался со мной, но пришлось передать произвольное строковое значение в качестве первого параметра TokenStream.
2. Мне пришлось добавить пакет Lucene.Net.Contrib nuget, чтобы найти эти объекты.
3. Привет, Кристиан Либардо, я тоже ищу его, но я использую Lucene. Net v 2.9.4 g с sensenet, но без библиотеки Lucene.Net.Highlight . Есть ли какой-либо способ получить исходный код или библиотеку DLL библиотеки Lucene.Net.Highlight? Спасибо