lucene 建立索引與搜尋所用到的相關類

2021-08-29 21:18:55 字數 857 閱讀 4500

今天繼續看《lucene in action》,將簡單地做一下筆記。

一、核心索引相關類

1)indexwriter

職責:建立索引或新增lucene結構的記錄(document)到索引中——建立/修改索引而不允許讀取索引。

2)directory

職責:lucene所建立的索引位置。此類是個抽象類,其子類有兩個fsdirectory和ramdirectory,表明了lucene所建立的索引只有兩個可能的位置:磁碟檔案儲存形式或記憶體儲存形式。其兩個子的繼承關係下圖(此圖是對lucene 1.4.3原始碼進行逆向工程得到,截圖去掉了fsdirectory類的兩個關聯關係,其它我沒有檢查其可靠性):

3)analyzer

職責:對被索引的檔案進行分析(分詞)便於建立精確的全文索引。這個類也是抽象類,其具體實現lucene接供文字分析器,具體如下圖示:

這些類具體作用有等進一步學習,重點是其擴充套件分詞:tokenizer類以適應新的字詞,語義切分。

4)document

職責:作為lucene的索引記錄(類似於資料庫的記錄,記錄由欄位構成)。

5)field

職責:作為lucene的document的字段。其與document類的關係圖如下圖示。

資料庫中表的字段有資料型別,lucene的字段也自己的資料型別,主要四種:keyword,unindexed,unstored,text其具體含義見 《luncene in action》,但要注意在lucene 2.4.0中已引入幾個新類,並且field類的用法有些變化,在建構函式中指定字段型別,有了termvertor型別。

先就寫到這兒吧,得吃飯去了。下午來再接著看,xp要持續開發部署,我來個持續學習lucene,呵呵,走了

Lucene 建立索引

public class indexer public static string indexdir d luceneindex public static void main string args system.out.println 被索引的文件個數 writer.numdocs catch ...

lucene建立索引並搜尋mysql資料庫

lucene結合資料庫步驟 1 寫一段傳統的jdbc程式,將每條的使用者資訊從資料庫讀取出來 2 針對每條使用者記錄,建立乙個lucene document document doc new document 並根據你的需要,將使用者資訊的各個字段對應luncene document中的field ...

lucene搜尋索引

官方demo,裡面思路也算清晰,也可以執行 lucene 6.3.0建立索引 public class searchfiles string index index string field contents string queries null int repeat 0 boolean raw ...