lucene實現搜索淺談

        項目中實現檢索功能是現在許多網站項目都存在的功能,比如cms系統等。

        現在我就以cms系統爲例簡單的說一下實現關鍵詞檢索功能,當我們在系統中發佈一篇文章之後怎麼能夠讓我們利用lucene可以檢索出來呢i?

        其實是這樣的,當我們把一篇文章的系統保存到數據庫之後同時實現把該文章的所有系統生成一系列的檢索文件,這樣在網站上的搜索就相當與在document中搜索關鍵字一樣了,然後對文章的刪改的同時對所生成的檢索文件根據具體的索引進行相應的刪改。下面說明lucene的幾個關鍵的屬性:

        Document
        Document 是用來描述文檔的,這裏的文檔可以指一個 HTML 頁面,一封電子郵件,或者是一個文本文件。一個 Document 對象由多個 Field 對象組成的。可以把一個 Document 對象想象成數據庫中的一個記錄,而每個 Field 對象就是記錄的一個字段。
         Field
         Field 對象是用來描述一個文檔的某個屬性的,比如一封電子郵件的標題和內容可以用兩個 Field 對象分別描述。
         Analyzer
         在一個文檔被索引之前,首先需要對文檔內容進行分詞處理,這部分工作就是由 Analyzer 來做的。Analyzer 類是一個抽象類,它有多個實現。針對不同的語言和應用需要選擇適合的 Analyzer。Analyzer 把分詞後的內容交給 IndexWriter 來建立索引。
         IndexWriter
         IndexWriter 是 Lucene 用來創建索引的一個核心的類,他的作用是把一個個的 Document 對象加到索引中來。
         Directory
         這個類代表了 Lucene 的索引的存儲的位置,這是一個抽象類,它目前有兩個實現,第一個是 FSDirectory,它表示一個存儲在文件系統中的索引的位置。第二個是 RAMDirectory,它表示一個存儲在內存當中的索引的位置。

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章