Lucene入門之索引的管理

2021-05-01 21:28:11 字數 1547 閱讀 6599

indexwriter

雖然不是專門用來檢視索引的工具,但是這個類的一些

get方法也可以檢視一些索引文件的相關資訊。 例如

writer.getdirectory().tostring();writer.numramdocs(),writer.doccount()

方法。indexreader

類專門用於讀取索引資訊的類,它是乙個抽象類,含有

filterindexreader,mulireader

、parallelreader

等子類。

indexreader

類通過靜態方法

open(string indexpath)

可以得到其子類。 使用

indexreader

類可以獲得某個索引的詳細情況。例如,指定路徑的索引是否存在,索引中包含的文件,索引中包含的詞條,索引是否進行過優化。

通過呼叫

indexreader

類的deletedocument(int id)

方法,可以從索引中刪除指定的序號的文件。

這個時候,索引的目錄下會生成乙個

del得新檔案。這個檔案中儲存了被刪除了的文件的資訊。

但是,文件並沒有真正從索引文件中刪除,只是做了已經被刪除的標記,從而可以使之不能參與索引。

通過indexreader

類的undeleteall()

方法即可將所有的標記為已刪除的文件都恢復過來。

要從物理上刪除索引中的文件,有如下兩個步驟: 使用

indexreader

做文件刪除的標記,即呼叫

deletedocument

的方法。 1,

執行indexwriter

的optimize()

方法。1,

使用迴圈語句。 2,

呼叫indexreader

的int deletedocuments(term term)

這個方法,可以刪除指定

term

的文件。因為

lucene

建立的索引是倒排索引,是以文件編號和短語標誌排列的,所以

lucene

實現了按照

term

去刪除文件。但是這種方法,也只是做標記,並不真正地刪除。

indexmodifier

類是專門用於全面操作索引的類。是乙個新類。這個類整合了

indexwriter

和indexreader

兩個類的方法,從而可以建立索引,檢視索引,修改索引。 同時

indexmodifier

類是執行緒安全的。

更新的方法,先刪除,後增加。

批量更新的方法,不是乙個乙個地更新,而是先批量刪除,再乙個乙個地新增。

也可以呼叫

indexwriter

更新索引的方法:

void updatedocument(term term,document doc,analyzer analyzer);

void updatedocument(term term,document doc)

Lucene入門之建立索引

1,建立索引器 indexwriter 2,建立文件物件 document 3,建立資訊字段物件 field 4,將field 新增到document 裡面5,將document 新增到indexwriter 6,關閉indexwriter field field new field field 名...

Lucene之建立索引

lucene用來建搜尋引擎要解決四個問題 抓取資料 解析資料 建立索引和執行搜尋。首先為每一篇文章新增標題 內容 寫作時間等資訊,從而寫好每一篇文章,然後將每一篇文章新增到書裡面去。這樣問及就寫好了。建立索引的過程如下 建立索引器indexwriter,這相當於一本書的框架。建立文件物件docmen...

lucene索引管理(索引建立於刪除)

若需要從索引中刪除某乙個或者某一類文件,indexreader提供了兩種方法 reader.deletedocument int docnum reader.deletedocuments term term 前者是根據文件的編號來刪除該文件,docnum是該文件進入索引時lucene的編號,是按照...