Solr(五)solrconfig.xml配置文件详解

solrconfig.xml文件路径:solrhome/collection1/conf/solrconfig.xml 

solrconfig.xml 中的配置项主要分以下几大块:
1. 依赖的 lucene 版本配置 ,这决定了你创建的 Lucene 索引结构,因为 Lucene 各版本之间的索引结构并不是完全兼容的,这个需要引起你的注意。

<luceneMatchVersion>5.3.1</luceneMatchVersion>

2. 索引创建相关的配置 ,如索引目录, IndexWriterConfig 类中的相关配置 ( 它决定了你的索引创建性能 )
<filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>

maxTokenCount 即在对某个域分词的时候,最多只提取前 10000 个 Token ,后续的域值将被抛弃。

<writeLockTimeout>1000</writeLockTimeout>
writeLockTimeout 表示 IndexWriter 实例在获取写锁的时候最大等待超时时间,超过指定的超时时间仍未获取到写锁,则 IndexWriter 写索引操作将会抛出异常。
<maxIndexingThreads>8</maxIndexingThreads>
表示创建索引的最大线程数,默认是开辟 8 个线程来创建索引。
<ramBufferSizeMB>100</ramBufferSizeMB>
表示创建索引时内存缓存大小,单位是 MB, 默认最大是 100M 。
<maxBufferedDocs>1000</maxBufferedDocs>

表示在 document 写入到硬盘之前,缓存的 document 最大个数,超过这个最大值会触发索引的 flush 操作。

3.solrconfig.xml 中依赖的外部 jar 包加载路径配置
如: <lib dir="./lib" regex=”lucene-\w+\.jar”/>
这里的 dir 表示一个 jar 包目录路径,该目录路径是相对于你当前 core 根目录的;regex 表示一个正则表达式,用来过滤文件名的,符合正则表达式的 jar 文件将会被加载
<dataDir>${solr.data.dir:}</dataDir>

如果solrhome 下不存在 core 的话,那 dataDir 默认就是相对于 solrhome

4. 缓存相关配置,缓存包括过滤器缓存,查询结果集缓存, Document 缓存,以及自定义缓存等等
<filterCache class="solr.FastLRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>
用来配置 filter 过滤器的缓存相关的参数
<queryResultCache class="solr.LRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>

用来配置对 Query 返回的查询结果集即 TopDocs 的缓存

<documentCache class="solr.LRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>
用来配置对 Document 中存储域的缓存,因为每次从硬盘上加载存储域的值都是很昂贵的操作,这里说的存储域指的是那些 Store.YES 的 Field 。

5.updateHandler 配置即索引更新操作相关配置

<updateHandler class="solr.DirectUpdateHandler2">
指定索引更新操作处理类, DirectUpdateHandler2 是一个高性能的索引更新处理类,它支持软提交。

<updateLog>  
 <str name="dir">${solr.ulog.dir:}</str>  
 </updateLog>  
设置索引库更新日志,默认路径为solrhome下面的data/tlog。
<autoCommit>  
 <maxTime>15000</maxTime>  
 <maxDocs>10000</maxDocs>  
 <openSearcher>false</openSearcher>  
 </autoCommit> 
自动硬提交方式:maxTime:设置多长时间提交一次maxDocs:设置达到多少文档提交一次openSearcher:文档提交后是否开启新的searcher,

 如果false,文档只是提交到index索引库,搜索结果中搜不到此次提交的文档;如果true,既提交到index索引库,也能在搜索结果中搜到此次提交的内容。

6.RequestHandler 相关配置,即接收客户端 HTTP 请求的处理类配置,输入的请求会通过请求中的路径被转发到特定的处理器
<requestHandler name="/query" class="solr.SearchHandler"> 
    <lst name="defaults">
          <str name="echoParams">explicit</str> 
          <str name="wt">json</str> 
          <str name="indent">true</str> 
    </lst>
</requestHandler>

这个 requestHandler 配置的是请求 URL  /query 跟请求处理类 SearcherHandler 之间的一个映射关系,即你访问 http://localhost:8080/solr/coreName/query?q=xxx时,会交给 SearcherHandler 类来处理这个 http 请求,你可以配置一些参数来干预SearcherHandler 处理细节。

<requestHandler name="/select" class="solr.SearchHandler">(查询)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">(关系型数据库全量引入,后面会介绍到)
<requestHandler name="/replication" class="solr.ReplicationHandler">(备份)
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">(拼写)
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">(智能提示)
其他的一些 RequestHandler 说明详见实际配置文件。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值