Lucene.Net Risultato della ricerca per evidenziare le parole chiave di ricerca

StackOverflow https://stackoverflow.com/questions/189366

  •  06-07-2019
  •  | 
  •  

Domanda

Uso Lucene.Net per indicizzare alcuni documenti. Voglio mostrare all'utente un paio di righe sul motivo per cui quel documento è nel set di risultati. proprio come quando si utilizza google per la ricerca e mostra il collegamento e seguito dal collegamento ci sono alcune righe con le parole chiave evidenziate. qualche idea?

È stato utile?

Soluzione

Quando hai un risultato puoi ottenere il testo indicizzato e passarlo insieme alla tua query attraverso un metodo simile a questo:

public string GeneratePreviewText(Query q, string text)
{
    QueryScorer scorer = new QueryScorer(q);
    Formatter formatter = new SimpleHTMLFormatter(highlightStartTag, highlightEndTag);
    Highlighter highlighter = new Highlighter(formatter, scorer);
    highlighter.SetTextFragmenter(new SimpleFragmenter(fragmentLength));
    TokenStream stream = new StandardAnalyzer().TokenStream(new StringReader(text));
    return highlighter.GetBestFragments(stream, text, fragmentCount, fragmentSeparator);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top