2008-10-09 40 views
17

Tôi sử dụng Lucene.Net để lập chỉ mục một số tài liệu. Tôi muốn hiển thị cho người dùng một vài dòng về lý do tại sao tài liệu đó nằm trong tập hợp kết quả. giống như khi bạn sử dụng google để tìm kiếm và nó hiển thị liên kết và theo sau là liên kết có một vài dòng với các từ khóa được tô sáng. bất kỳ ý tưởng nào?Lucene.Net Kết quả tìm kiếm để làm nổi bật các từ khóa tìm kiếm

Trả lời

23

Khi bạn có kết quả là bạn có thể nhận được các văn bản được lập chỉ mục vượt qua nó cùng với truy vấn của bạn thông qua một phương pháp tương tự như sau:

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

Bạn là một người bạn đời đá quý. cảm ơn. –

+0

Phân loại tôi ra, nhưng phải vượt qua một giá trị chuỗi tùy ý như một tham số đầu tiên của TokenStream. – ctrlplusb

+1

Tôi đã phải thêm gói nuget Lucene.Net.Contrib để tìm các đối tượng đó. –

Các vấn đề liên quan