solr之solrconfig.xml

1,solrconfig.xml  配置文件中包含了很多 solr 自身配置相关的参数 ,solrconfig.xml  配置文件示例可以从 solr  home的以下目录找到:

  solr之solrconfig.xml

2,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>
如果solr_home 下不存在 core 的话,那 dataDir 默认就是相对于 solr_home

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 。
6.updateHandler 配置即索引更新操作相关配置
<updateHandler class="solr.DirectUpdateHandler2">
指定索引更新操作处理类, DirectUpdateHandler2 是一个高性能的索引更新处理类,它支持软提交。

<updateLog>  
 <str name="dir">${solr.ulog.dir:}</str>  
 </updateLog>  
设置索引库更新日志,默认路径为solr home下面的data/tlog。
<autoCommit>  
 <maxTime>15000</maxTime>  
 <maxDocs>10000</maxDocs>  
 <openSearcher>false</openSearcher>  
 </autoCommit> 
自动硬提交方式:maxTime:设置多长时间提交一次maxDocs:设置达到多少文档提交一次openSearcher:文档提交后是否开启新的searcher,
 如果false,文档只是提交到index索引库,搜索结果中搜不到此次提交的文档;如果true,既提交到index索引库,也能在搜索结果中搜到此次提交的内容。

7.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 说明详见实际配置文件。

上一篇:Solr Linux 安装


下一篇:Solr