Как я заставляю Lucene (.NET) выделяться правильно с подстановочными знаками?

Я использую API Lucene.NET непосредственно в моем веб-приложении ASP.NET/C#. Когда я ищу использование подстановочного знака, как "fuc*", маркер ничего не выделяет, но когда я ищу целое слово, как "фуксия", это выделяется прекрасный. Lucene имеет способность выделить использование той же логики, которой это раньше соответствовало?

Различные фрагменты кода, возможно важные, ниже:

var formatter = new Lucene.Net.Highlight.SimpleHTMLFormatter(
    "<span class='srhilite'>",
    "</span>");

var fragmenter = new Lucene.Net.Highlight.SimpleFragmenter(100);
var scorer = new Lucene.Net.Highlight.QueryScorer(query);
var highlighter = new Lucene.Net.Highlight.Highlighter(formatter, scorer);
highlighter.SetTextFragmenter(fragmenter);

и затем на каждом хите...

string description = Server.HtmlEncode(doc.Get("Description"));
var stream = analyzer.TokenStream("Description", 
    new System.IO.StringReader(description));
string highlighted_text = highlighter.GetBestFragments(
    stream, description, 1, "...");

И я использую QueryParser и StandardAnalyzer.

6
задан Scott Stafford 14 May 2010 в 21:07
поделиться

1 ответ

вам нужно убедиться, что вы установили метод перезаписи парсера на SCORING_BOOLEAN_QUERY_REWRITE.

Это изменение, похоже, стало необходимым с появлением Lucene v2.9.

Надеюсь, это поможет,

4
ответ дан 17 December 2019 в 07:01
поделиться
Другие вопросы по тегам:

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