Я использую Lucene.NET API непосредственно в своем веб-приложении ASP.NET/C#. Когда я ищу с использованием подстановочного знака, такого как «fuc *», маркер ничего не выделяет, но когда я ищу все слово, например «fuchsia», оно выделяется нормально. Есть ли у 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.