lucene 建立IndexWriter物件

2021-06-15 00:08:23 字數 1499 閱讀 7050

indexwriter物件主要包含以下幾方面的資訊:

• 用於索引文件

◦ directory directory; 指向索引資料夾

◦ analyzer analyzer; 分詞器

◦ similarity similarity = similarity.getdefault(); 影響打分的標準化因子(normalization factor)

部分,對文件的打分分兩個部分,一部分是索引階段計算的,與查詢語句無關,一部分是搜尋

階段計算的,與查詢語句相關。

◦ segmentinfos segmentinfos = new segmentinfos(); 儲存段資訊,大家會發現,和

segments_n中的資訊幾乎一一對應。

◦ indexfiledeleter deleter; 此物件不是用來刪除文件的,而是用來管理索引檔案的。

◦ lock writelock; 每乙個索引資料夾只能開啟乙個indexwriter,所以需要鎖。

◦ set segmentstooptimize = new hashset(); 儲存正在最優化(optimize)的段資訊。當呼叫

optimize的時候,當前所有的段資訊加入此set,此後新生成的段並不參與此次最優化。

• 用於合併段,在合併段的文章中將詳細描述

◦ segmentinfos localrollbacksegmentinfos;

◦ hashset mergingsegments = new hashset();

◦ mergepolicy mergepolicy = new logbytesizemergepolicy(this);

◦ mergescheduler mergescheduler = new concurrentmergescheduler();

◦ linkedlist pendingmerges = new linkedlist();

◦ set runningmerges = new hashset();

◦ list mergeexceptions = new arraylist();

◦ long mergegen;

• 為保持索引完整性,一致性和事務性

◦ segmentinfos rollbacksegmentinfos; 當indexwriter對索引進行了新增,刪除文件操作後,

可以呼叫commit將修改提交到檔案中去,也可以呼叫rollback取消從上次commit到此時的修

改。◦ segmentinfos localrollbacksegmentinfos; 此段資訊主要用於將其他的索引資料夾合併到此

索引資料夾的時候,為防止合併到一半出錯可回滾所儲存的原來的段資訊。

• 一些配置

◦ long writelocktimeout; 獲得鎖的時間超時。當超時的時候,說明此索引資料夾已經被另乙個

indexwriter開啟了。

◦ int termindexinterval; 同tii和tis檔案中的indexinterval。

Lucene 建立索引

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

Lucene之建立索引

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

如何建立Lucene索引

需要用到的ipa indexwriter 這個是索引建立的中心元件,通過他就可以建立索引,它是生成索引的過程 與讀取和搜尋索引沒有關係 初始化化它時,需要傳遞的兩個引數。第乙個是引數是指定索引建立的位置,第二是引數是配置分詞器。document 這個文字相當於資料庫中的一條記錄,它裡面需要新增fie...