Използвам 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.