2008-10-09 22 views
17

Bazı belgeleri indekslemek için Lucene.Net kullanıyorum. Kullanıcının neden sonuç kümesinde yer aldığına dair birkaç satır göstermek istiyorum. tıpkı arama yapmak için google'ı kullandığınızda ve bağlantıyı gösterdiğinde ve bağlantıyı takip ettiğinizde, vurgulanan anahtar kelimelerle birkaç satır var. herhangi bir fikir?Lucene.Net Arama kriterlerinize işaret etmek için arama yapın.

cevap

23

bir sonuç varsa sen endeksli metin buna benzer bir yöntemle talebinizle ilgili de iletin alabilirsiniz: Bir mücevher arkadaşı vardır

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); 
} 
+0

. Teşekkürler. –

+0

Beni dışarı çıkardı, ancak TokenStream'in ilk parametresi olarak rasgele bir dize değerini geçmek zorunda kaldı. – ctrlplusb

+1

Bu nesneleri bulmak için Lucene.Net.Contrib nuget paketini eklemeliydim. –