Estoy tratando de resaltar los términos de búsqueda en un bloque de HTML, el problema es que si un usuario hace una búsqueda de "color", esto:Lucene.NET Buscar resaltado que respete las etiquetas HTML
< span style =' Color: blanco '> blanca </span >
se convierte en: estilo < lapso =' <b> de color </b >: blanco' > <b> blanca </b > </span >
y obviamente, arruinar mi estilo no es una buena idea.
Aquí está el código que estoy utilizando:
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())
estoy adivinando el problema es que necesito un fragmentador diferente, pero no estoy seguro. Cualquier ayuda sería apreciada.
Suena un poco específico, dudo que alguien tenga una solución probada, pero siempre puedes subir tus parches al contrib de Lucene.Net para que otros puedan usarlo/probarlo. – Prescott