Lucene原始碼解析--IndexWriterConfig配置引數說明

百聯達發表於2013-07-12
建立IndexWriter例項時,透過IndexWriterConfig來設定其相關配置:
1.Analyzer:分析器

2.matchVersion:所用Lucene的版本

3.ramBufferSizeMB:隨機記憶體 預設為16M.
用於控制buffer索引文件的記憶體上限,如果buffer的索引文件個數到達該上限就寫入硬碟。當然,一般來說越大索引速度越快

4.maxBufferedDocs:最大快取文件數,該引數決定寫入記憶體索引文件個數,到達該數目後就把該記憶體索引寫入硬碟,生成一個新的索引segment檔案。所以該引數也就是一個記憶體buffer,一般來說越大索引速度越快,預設不啟用.

5.maxBufferedDeleteTerms:最大快取刪除詞條數,當數量達到時會重新整理現有的索引段。預設不啟用.

6.readerTermsIndexDivisor:索引分詞抽樣因子,如果值設為N,那麼在讀取索引的時候每N*termIndexInterval個分詞中抽取一個作為樣本到RAM中,N值越大所佔用的記憶體越小。

7.mergedSegmentWarmer:預設值為NULL

8.termIndexInterval:索引分詞間隔,值越大IndexReader耗費的記憶體越小。這個引數決定著查詢每個分詞時所耗費的計算量。通常情況下它代表著在一個分詞被定位到時,需要掃描的其他分詞的最大值。預設值為32

9.delPolicy:索引刪除策略,預設為KeepOnlyLastCommitDeletionPolicy,只保持最近一次的提交資訊。

10.Commit:IndexCommit索引的變更如果要可見(如IndexDeletionPolicy,IndexReader中),必須提交COMMIT。每次提交都有一個唯一的segments_N檔案與之關聯。預設NULL

11.openMode:IndexWriter的開啟模式,預設為CREATE_OR_APPEND,如果索引存在則開啟進行擴充,否則新建。

12.Similarity:定義索引中分詞的權重及打分情況。預設值為IndexSearcher.getDefaultSimilarity()

13.mergeScheduler:合併定時器,每個執行緒執行一個merge操作,預設為ConcurrentMergeScheduler

14.writeLockTimeout:寫鎖超時時間 預設為1000毫秒

15.indexingChain:索引鏈,定義文件是如何被索引的,預設採DocumentsWriterPerThread.defaultIndexingChain。有關索引鏈後面會詳細介紹。

16.Codec:編碼或解碼一個倒排索引段,用於生成一個新的段。

17.infoStream:用於除錯資訊的管理,預設為InfoStream.getDefault()不記錄任何除錯資訊。

18.mergePolicy:索引段的合併策略。預設為TieredMergePolicy根據每一層允許的段數合併大小相似的段。

19.flushPolicy:索引段資料重新整理策略。即RAM記憶體中的資料何時重新整理到物理結構中。預設為FlushByRamOrCountsPolicy,即根據RAM的使用情況,maxBufferedDocs和maxBufferedDeleteTerms的值來制定重新整理策略。

20.readerPooling:例項化IndexReader是非常昂貴的操作,且它是一個執行緒安全的,跟索引目錄是一一對應的,最好的方式就是用一個Pool去維護這些IndexReader:保證一個檔案目錄只有一個例項,且不同的IndexReader可以動態的組合。預設為false 不使用Pool.

21.indexerThreadPool:對documents建立索引的執行緒池,預設執行緒池中保持8個執行緒。

22.perThreadHardLimitMB:設定每個段記憶體使用的上限,如果達到該上限就會對段進行強制重新整理。預設值為1945M。
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

相關文章