顾名思义,
solrconfig.xml主要是配置跟自身相关的参数,比如:
这个配置文件位于每个collection的conf/中,在server/solr/configsets/目录下有一些例子可以参考。
${propertyname[:option default value]}
冒号后面的是缺省值,冒号前面的值可以来自于:
<lib/>标签:
<requestHandler/>标签:
例子:
<requestHandler name="
/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="defType">edismax</str>
<int name="rows">10</int>
</lst>
</requestHandler>
几种常用的Request Handler
例子:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
<initParams/>标签:
例子(配置一个缺省的df):
<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse">
<lst name="defaults">
<str name="df">_text_</str>
</lst>
</initParams>
如果配置name,在<requestHander>中引用的例子:
<requestHandler name="/dump1" class="DumpRequestHandler"
initParams="myParams"/>
<updateHandler/>标签:
注:commit和softCommit:
<query/>标签:
- 用途:配置Solr如何处理和返回搜索的相关参数
- 主要参数:
- filterCache:当搜索带有“fq”参数时,使用这个配置,它保存未经过排序的所有文档
- queryResultCache:存储最终的搜索结果(排序后的、有范围的文档id)
- documentCache:缓存Lucene Document对象(就是每个文档的fields)
- cache:配置自定义的缓存,通过SolrIndexSearcher类的getCache()方法和name参数调用这个缓存
- name:被调用时的标识
- 其他参数同上
- maxBooleanClauses:BooleanQuery的最大子句数量
- enableLazyFieldLoading:没有知道被请求的field是否懒加载,true/false
- useFilterForSortedQuery:如果不是按照score排序,是否从filterCache中获取数据
- queryResultWindowSize:配合queryResultCache使用,缓存一个超集。如果搜索请求第10到19条记录,而这个参数是50,那么会缓存0到49条记录
- queryResultMaxDocsCached:queryResultCache缓存的最大文档数量
- useColdSearcher:但一个新searcher正在warm-up的时候,新请求是使用旧是searcher(true)还是等待新的search(false)
- maxWarmingSearchers:定义同时在warn-up的searcher的最大数量
- listener:监听一些事件并指定处理的类,比如在solr启动时加载一些数据到缓存中,相关参数:
- event:被监听的事件,比如:firstSearcher是第一个searcher启动、也就是solr启动的事件,newSearcher是当已经有searcher在运行的时候有新searcher启动的事件
- class:处理类
- name:="queries"就是需要处理的是query
- lst,name:针对哪些搜索条件需要处理
<requestDispatcher/>标签:
<updateProcessor/>和<updateProcessorChain/>标签:
- 用途:配置处理update请求的处理器、处理器链。如果不配置的话,Solr会使用缺省的三个处理器:
- LogUpdateProcessorFactory:追踪和记录日志
- DistributedUpdateProcessorFactory:分流update请求到不同的node,比如SolrCloud的情况下把请求分配给一个shard的leader,然后把更新应用到所有replica中
- RunUpdateProcessorFactory:调用Solr的内部API执行update操作
- 如果需要自定义update处理器:
- updateProcessor:
- class:负责处理的类
- name:名字,给updateProcessorChain引用是使用
- updateProcessorChain:
- name:自己的名字标记
- processor:指定updateProcessor的name,多个的话用逗号“,”分开
- updateProcessor:
相关名词: