sto cercando di evidenziare i termini di ricerca in un blocco di codice HTML, il problema è se un utente fa una ricerca per "colore", in questo modo:Lucene.NET l'evidenziazione della ricerca che rispetta i tag HTML
< span style =' colore: bianco '> bianco </span >
diventa: < span style =' <b> colore </b >: bianco' > <b> bianco </b > </span >
e ovviamente, incasinare il mio stile non è una buona idea.
Ecco il codice che sto usando:
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())
Sto indovinando il problema è che ho bisogno di un Fragmenter diversa, ma non sono sicuro. Qualsiasi aiuto sarebbe apprezzato.
Sembra un po 'specifico, dubito che qualcuno abbia una soluzione testata, ma è sempre possibile caricare le patch sul contributo Lucene.Net in modo che altri possano usarlo/testarlo. – Prescott