lucene中的IndexWriter中的IndexWriterConfig的详解

lucene中的IndexWriter中的IndexWriterConfig的详解
    在Lucene3.X版本中,与前几个版本的不同的地方包括了IndexWriter实例的初始化,其中需要用到IndexWriterConfig这个类。另外,从Lucene的API中可以看到目前IndexWriter类最新的构造函数需要用到IndexWriterConfig这个类(其它的构造函数不建议使用,被废弃掉了)
    创建IndexWriter实例时,通过IndexWriterConfig来设置其相关配置
(1)Analyzer analyzer 分析器
(2)Version matchVersion 所用Lucene的版本
(3)double ramBufferSizeMB
    随机内存 默认为16M.用于控制buffer索引文档的内存上限,如果buffer的索引文档个数到达该上限就写入硬盘。当然,一般来说越大索引速度越快
(4)int maxBufferedDocs
    最大缓存文档数,该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成一个新的索引segment文件。所以该参数也就是一个内存buffer,一般来说越大索引速度越快,默认不启用
(5)int maxBufferedDeleteTerms
    最大缓存删除词条数,当数量达到时会刷新现有的索引段。默认不启用
(6)IndexReaderWarmer mergedSegmentWarmer
    默认值为NULL
(7)int termIndexInterval
    索引分词间隔,值越大IndexReader耗费的内存越小。这个参数决定着查询每个分词时所耗费的计算量。通常情况下它代表着在一个分词被定位到时,需要扫描的其他分词的最大值。默认值为32
(8)IndexDeletionPolicy delPolicy
    索引删除策略,默认为KeepOnlyLastCommitDeletionPolicy,只保持最近一次的提交信息
(9)IndexCommit commit
    索引的变更如果要可见(如IndexDeletionPolicy,IndexReader中),必须提交COMMIT。
每次提交都有一个唯一的segments_N文件与之关联。默认NULL
 (10)OpenMode openMode
    IndexWriter的打开模式,默认为CREATE_OR_APPEND,如果索引存在则打开进行扩充,否则新建
(11)Similarity similarity
   定义索引中分词的权重及打分情况。默认值为IndexSearcher.getDefaultSimilarity()
(12)MergeScheduler mergeScheduler
    合并定时器,每个线程执行一个merge操作,默认为ConcurrentMergeScheduler
(13)long writeLockTimeout
    写锁超时时间 默认为1000毫秒
(14)IndexingChain indexingChain
    索引链,定义文档是如何被索引的,默认采DocumentsWriterPerThread.defaultIndexingChain
(15)MergePolicy mergePolicy
    索引段的合并策略。默认为TieredMergePolicy根据每一层允许的段数合并大小相似的段
(16)boolean readerPooling
    实例化IndexReader是非常昂贵的操作,且它是一个线程安全的,跟索引目录是一一对应的,最好的方式就是用一个Pool去维护这些IndexReader:保证一个文件目录只有一个实例,且不同的IndexReader可以动态的组合。默认为false 不使用Pool.


转载于:https://my.oschina.net/u/1434326/blog/291866

你可能感兴趣的:(lucene中的IndexWriter中的IndexWriterConfig的详解)