solrconfig.xml配置文件中包含了很多solr自身配置相关的参数,solrconfig.xml配置文件示例可以从solr的解压目录下找到,如图: 用文本编辑软件打开solrconfig.xml配置,你将会看到以下配置内容:
4.6
${solr.core0.data.dir:}
class="${solr.directoryFactory:solr.StandardDirectoryFactory}" />
${solr.lock.type:native}
true
${solr.core0.data.dir:}
${solr.autoCommit.maxTime:15000}
false
1024
initialSize="5" autowarmCount="10" regenerator="solr.NoOpRegenerator" />
true
20
200
_type
zipCode
categorys
overall
languageSpoken
status
createDate
budget_min
budget_max
budget_min:[0 TO 50] AND budget_max:{0 TO *]
budget_min:[0 TO 100] AND budget_max:{50 TO *]
budget_min:[0 TO 150] AND budget_max:{100 TO *]
budget_min:[0 TO 200] AND budget_max:{150 TO *]
budget_min:[0 TO 300] AND budget_max:{200 TO *]
budget_min:[0 TO 400] AND budget_max:{300 TO *]
budget_min:[0 TO 500] AND budget_max:{400 TO *]
budget_min:[0 TO 1000] AND budget_max:{500 TO *]
budget_min:[0 TO 2000] AND budget_max:{1500 TO *]
budget_min:[0 TO 3000] AND budget_max:{2000 TO *]
budget_min:[0 TO 4000] AND budget_max:{3000 TO *]
budget_min:[0 TO 5000] AND budget_max:{4000 TO *]
budget_max:[5000 TO *]
_type
zipCode
categorys
overall
languageSpoken
status
createDate
budget_min
budget_max
budget_min:[0 TO 50] AND budget_max:{0 TO *]
budget_min:[0 TO 100] AND budget_max:{50 TO *]
budget_min:[0 TO 150] AND budget_max:{100 TO *]
budget_min:[0 TO 200] AND budget_max:{150 TO *]
budget_min:[0 TO 300] AND budget_max:{200 TO *]
budget_min:[0 TO 400] AND budget_max:{300 TO *]
budget_min:[0 TO 500] AND budget_max:{400 TO *]
budget_min:[0 TO 1000] AND budget_max:{500 TO *]
budget_min:[0 TO 2000] AND budget_max:{1500 TO *]
budget_min:[0 TO 3000] AND budget_max:{2000 TO *]
budget_min:[0 TO 4000] AND budget_max:{3000 TO *]
budget_min:[0 TO 5000] AND budget_max:{4000 TO *]
budget_max:[5000 TO *]
false
2
multipartUploadLimitInKB="2048000" formdataUploadLimitInKB="2048"
addHttpRequestToContext="false" />
explicit
10
id
explicit
json
true
text
true
json
true
solrpingquery
all
id
startup="lazy" />
text/plain; charset=UTF-8
class="solr.VelocityResponseWriter" startup="lazy" />
*:*
下面我将对其中关键地方加以解释说明:
lib
lib标签指令可以用来告诉Solr如何去加载solr plugins(Solr插件)依赖的jar包,在solrconfig.xml配置文件的注释中有配置示例.
例如:
这里的dir表示一个jar包目录路径,该目录路径是相对于你当前core根目录的;regex表示一个正则表达式,用来过滤文件名的,符合正则表达式的jar文件将会被加载
dataDir parameter
例如:
用来指定一个solr的索引数据目录,solr创建的索引会存放在data\index目录下,默认dataDir 是相 对于当前core目录(如果solr_home下存在core的话),如果solr_home下不存在core的话,那dataDir默认就是相对于solr_home啦,不过一般dataDir都在core.properties下配置
codecFactory
用来设置Lucene倒排索引的编码工厂类,默认实现是官方提供的SchemaCodecFactory类。
indexConfig Section
在solrconfig.xml的
QuerySenderListener用来监听查询发送过程,即你可以在Query请求发送之前追加一些请求参数,如上面给的示例中,可以追加qery关键字以及sort排序规则。
searchComponent
用来配置查询组件比如SpellCheckComponent拼写检查.
用来返回所有的Term以及每个document中Term的出现频率
用来配置关键字高亮的,Solr高亮配置的详细说明这里暂时先略过,这篇我们只是先暂时大致了解下每个配置项的含义即可,具体如何使用留到后续再深入研究。
\
requestHandler
主从同步配置
主节点
startup
commit
optimize
schema.xml
1
1000
false
从节点
http://10.28.175.246:8080/solr/waiter
00:00:20
这是我从WIKI上摘抄下来的以前在Adystem Solr分布式中用到的一些配置.
说明:
- masterUrl : 主服务器同步URL地址
- pollInterval:从服务器同步间隔,即每隔多长时间同步一次主服务器
- httpConnTimeout:设置连接超时(单位:毫秒)
- httpReadTimeout:如果设置同步索引文件过大,则应适当提高此值。(单位:毫秒)
- httpBasicAuthUser:验证用户名,需要和主服务器一致
- httpBasicAuthPassword:验证密码,需和主服务器一致
- compression:external or internal 使用SOLR自己的压缩算法或应用容器的
最后总结下:
solrconfig.xml中的配置项主要分以下几大块:
1.依赖的lucene版本配置,这决定了你创建的Lucene索引结构,因为Lucene各版本之间的索引结构并不是完全兼容的,这个需要引起你的注意。
2.索引创建相关的配置,如索引目录,IndexWriterConfig类中的相关配置(它决定了你的索引创建性能)
3.solrconfig.xml中依赖的外部jar包加载路径配置
4.JMX相关配置
5.缓存相关配置,缓存包括过滤器缓存,查询结果集缓存,Document缓存,以及自定义缓存等等
6.updateHandler配置即索引更新操作相关配置
7.RequestHandler相关配置,即接收客户端HTTP请求的处理类配置
8.查询组件配置如HightLight,SpellChecker等等
9.ResponseWriter配置即响应数据转换器相关配置,决定了响应数据是以什么样格式返回给客户端的。
10.自定义ValueSourceParser配置,用来干预Document的权重、评分,排序