2009-10-30 34 views
0

我使用Lucene.Net來實現搜索網站(用於搜索PDF)。輸入關鍵字後,我會顯示結果,並且當單擊其中一個結果項時,我想讓用戶進入「詳細信息」頁面,我希望在該關鍵字找到的任何地方顯示該PDF文檔的片段。Lucene.NET:從文檔文本處理關鍵字片段的最佳方法

所以我的問題是,從這個文件中收集這些片段的最佳方法是什麼?

  1. 難道我只是把上只是文件所選擇的項目編號,重新查詢,並讓Lucene的熒光筆給我片段的集合?

  2. 或者,因爲我已經有每個結果記錄的文本內容,所以使用C#字符串操作手動處理片段會更好嗎?

如果它是1.,請問我可以給我一個如何編寫查詢以在Lucene中搜索單個文檔的示例嗎?

謝謝。

回答

0

您應該使用Lucene Highlight包,因爲您的查詢和文檔將需要使用用於索引文檔的相同分析器進行標記。通過字符串方法直接使用C#可以工作,但您必須使用相同的標記邏輯來匹配文檔文本的查詢條件(如詞幹,停用詞等)。如果要在索引中存儲文檔的全文,則使用熒光筆很簡單。如果您不將文本存儲在索引中,也可以從其他位置獲取文檔文本。您將需要傳遞初始搜索中使用的相同查詢,併爲要突出顯示的文檔包含完全匹配,例如,通過在該查詢中追加該文檔唯一標識所需的子句。用於單個文檔的查詢應該有2個必需的子句,第一個子句是最初用於查找文檔的原始查詢,另一個子句是該單個文檔的一些唯一標識符。這樣熒光筆可以使用相同的查詢生成突出顯示的片段。

+0

完美。感謝您的回答。 – Prabhu 2009-11-03 14:49:48

相關問題