Подсветка слов lucene.net?

Делаю полнотекстовый поиск для веб с использованием lucene на asp.net. Все замечательно работает, кроме подсветки ключевых слов. Точнее она работает и подсвечивает для всех запросов, кроме wildcardQuery, т.е. запросов типа: «по*ск» и т.п. Делаю все стандартно:
Analyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser("text", analyzer);
Query query = parser.Parse(src_txt);
IndexSearcher searcher = new IndexSearcher(path);
Hits hits = searcher.Search(query);
Lucene.Net.Highlight.Formatter formatter = new Lucene.Net.Highlight.SimpleHTMLFormatter(
                    "<span class='find'>", "</span>");
Lucene.Net.Highlight.SimpleFragmenter fragmenter = new Lucene.Net.Highlight.SimpleFragmenter(300);
Lucene.Net.Highlight.QueryScorer scorer = new Lucene.Net.Highlight.QueryScorer(query);
Lucene.Net.Highlight.Highlighter highlighter = new Lucene.Net.Highlight.Highlighter(formatter, scorer);
highlighter.SetTextFragmenter(fragmenter);
Document doc = hits.Doc(i);
string tr = Server.HtmlEncode(doc.Get("text"));
TokenStream ts = analyzer.TokenStream("", new System.IO.StringReader(tr));
string result = highlighter.GetBestFragment(ts, tr);


Подскажите пожалуйста, в чем может быть причина?
  • Вопрос задан
  • 3825 просмотров
Решения вопроса 1
Alf162
@Alf162 Автор вопроса
Проблема разрешилась добавлением двух строк:
parser.SetMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
.....
query = query.Rewrite(searcher.GetIndexReader());
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы