respektiert Ich versuche Suchbegriffe in einem Block von HTML zu markieren, ist das Problem, wenn ein Benutzer eine Suche nach „Farbe“ der Fall ist, folgt aus:Lucene.NET Suchen Hervorhebungen, die HTML-Tag
< span style =‘ Farbe: weiß '> weiß </span >
wird: < span style =' <b> Farbe </b >: weiß‘> <b> weiß </b > </span >
und natürlich meinen Stil vermasselt, ist keine gute Idee. Hier
ist der Code, ich verwende:
Query parsedQuery = parser.Parse(luceneQuery);
StandardAnalyzer Analyzer = new StandardAnalyzer();
SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<b class='search'>", "</b>");
QueryScorer scorer = new QueryScorer(parsedQuery);
Highlighter highlighter = new Highlighter(formatter, scorer);
highlighter.SetTextFragmenter(new SimpleFragmenter());
Highlighter.GetBestFragment(Analyzer, propertyName, invocation.ReturnValue.ToString())
Ich vermute, das Problem ist, dass ich eine andere Fragmentierers brauchen, aber ich bin nicht sicher. Jede Hilfe wäre willkommen.
Es klingt irgendwie spezifisch, ich bezweifle, dass jemand eine getestete Lösung hat - aber Sie könnten Ihre Patches immer auf den Lucene.Net contrib hochladen, damit andere es benutzen/testen können. – Prescott