创建IndexWriter实例时,通过IndexWriterConfig来设置其相关配置

创建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。

时间: 2024-08-27 21:06:13

创建IndexWriter实例时,通过IndexWriterConfig来设置其相关配置的相关文章

域初始化、静态块及构造方法等在创建类实例时的执行顺序(转载)

在<Core java 2: volumn 1, Edition 5>一书的第四章“对象与类”中讲到域赋值语句.实例块.静态块及构造方法等在创建类实例时的执行顺序,中文译本有些处翻译的不贴切,而英文原书中也有一处错误.本文通过一个小程序来说明类实例构造过程中的语句执行顺序. 程序如下: public class Teststaticblock { public Teststaticblock() { this("second"); System.out.println(&q

(转)创建DB2实例时出错,请大家帮忙解决

创建DB2实例时出错,请大家帮忙解决 原文:http://bbs.chinaunix.net/thread-3601748-1-1.html 运行:$DB2DIR/instance/db2icrt  -u db2fadm1 db2inst1 出现错误:            Program name = db2idbmInstance home dir = /db2inst1,   Sysadm group = db2iadm1Instance type = 1,  Auth type = SE

UI第九讲.UITableView表视图创建,表视图的重用机制,表视图的相关配置方法

一.UITableView表视图创建 1>.基本属性: UITableView继承自UIScrollView,所以可以滚动          表视图的每一条数据都是显示在UITableViewCell对象中          表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0始 2>.重要用法: 最重要的是两个代理方法 <UITableViewDelegate,UITableViewDataSource>(其中必须实现的是 numberOfRow

工作中linux定时任务的设置及相关配置

工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次    0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type f -ctime +60 -exec rm -f {} \; ------------------------------------------------------------------- linux定时任务的设置 Posted on 2010-09-23 23:49 疯狂 阅读(13760

关于在openstack中创建实例时任务一直卡在Building的现象描述

单位有一个小型的使用OpenStack搭建的私有云平台,昨天在使用Horizon创建一个实例时,发现该实例创建失败,任务状态一直显示为Building,随后可以在分配给该实例的计算节点上的compute.log中发现如下信息: compute.log:2015-06-08 16:23:17 WARNING nova.compute.manager [-] Found 4 in the database and 3 on the hypervisor.compute.log:2015-06-08

linux下数据库实例监听开机自启动设置

linux下数据库实例监听开机自启动设置 2016/5/16 zhanky 脚本介绍 在开始之前,我们先介绍一下几个会用到的脚本. oratab oratab文件是在创建数据库实例时建立的,在安装时使用root用户执行root.sh脚本后得到.(如果忘记也可以直接手动创建.) 在$ORACLE_HOME/bin目录下的$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut需要调用/etc/oratab文件,如果不存在,dbstart和dbshut将失败,

DBCA静默方式创建数据库实例

这两天装了几套开发环境的Oracle数据库,其中有11.2.0.4的版本也有12.2.0.1的版本.由于网络环境复杂,没有办法使用图形界面的方式安装,只能使用静默方式安装,之前也写过关于静默安装数据库软件和创建实例的博客http://hbxztc.blog.51cto.com/1587495/1884833有兴趣的可以参考,这两天用的也是这样的方法,但是之前看到有人在分享中使用过dbca的静默方法来创建数据库实例,还没有做过尝试,趁安装空闲的时间研究了一下,在此也做一个简单的分享. dbca有两

CentOS7_86_64创建Oracle实例且设置开机自启以及允许远程连接

一.前言 先说明下,这里系统是CentOS7_86_64,Oracle版本是Oracle10g R2,假设系统和数据库都已安装完毕.前面有一篇文章详细说明了CentOS7下安装Oracle10g的流程,需要的同学可以去看一下.传送门:CentOS7_86_64安装Oracle10g R2血泪史. 二.检查/设置系统防火墙 说明:这里主要是为了设置oracle允许远程连接,如果没有这个需求,可以先不用管. 1.客户端检测网络通过性 此步骤不执行也可以,如果没条件检测的话.这里只是说明下网络是否正常

Spark2.2+ES6.4.2(三十二):ES API之ndex的create(创建index时设置setting,并创建index后根据avro模板动态设置index的mapping)/update/delete/open/close

要想通过ES API对es的操作,必须获取到TransportClient对象,让后根据TransportClient获取到IndicesAdminClient对象后,方可以根据IndicesAdminClient对象提供的方法对ES的index进行操作:create index,update index(update index settings,update index mapping),delete index,open index,close index. 准备工作(创建Transpor