Люсинен.Чистый результат поиска для выделения ключевых слов поиска

#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? Спасибо