solrconfig.xml文件用于对服务器的系统参数进行配置,下面列出常用的配置参数。
l <dataDir>
用于替换默认的索引数据目录(./data)。如果不是绝对路径,将使用servlet容器当前工作目录下的相对路径。
l <mainIndex>
这里指定的参数将影响IndexWriter对索引的管理。表3-11展示了<mainIndex>元素的配置方法。
表3-11 <mainIndex>元素的配置
<mainIndex> <useCompoundFile>false</useCompoundFile> <mergeFactor>10</mergeFactor> <maxBufferedDocs>1000</maxBufferedDocs> <maxMergeDocs>2147483647</maxMergeDocs> <maxFieldLength>10000</maxFieldLength> <unlockOnStartup>false</unlockOnStartup> </mainIndex> |
表3-11中<useCompoundFile>子元素指明是否提供索引文件合并功能,如果该元素的值为true,Solr会在索引文件较多时,通过将多个索引文件进行合并来减少索引文件的数量。<mergeFactor>指明索引文件合并的频率,例如在表3-11中,最低级的索引文件数量达到10时会合并为1个索引文件,当这样合成索引文件数目达到10个时,又会合并为更高级的索引文件。<maxBufferedDocs>元素指定缓存的文档数目达到多少时会自动建立硬盘索引文件。<maxMergeDocs>指明合并后的索引文件可以容纳的文档的数目,当某个索引文件的数目超过这一值后,将不能再合并。<unlockOnStartup>false</unlockOnStartup>用于指定是否在启动时自动解除索引文件的锁。<maxFieldLength>指明字段所允许的最大长度。
l <updateHandler>
该元素用于对更新处理器进行配置,更新处理器是用于更新索引数据的类。更新处理器的常用配置参数见表3-12。
表3-12 更新处理器的配置
<updateHandler class="solr.DirectUpdateHandler2"> <autoCommit> <maxDocs>10000</maxDocs> <maxTime>1000</maxTime> </autoCommit> <listener event="postCommit" class="solr.RunExecutableListener"> <str name="exe">snapshooter</str> <str name="dir">solr/bin</str> <bool name="wait">true</bool> <arr name="args"> <str>arg1</str> <str>arg2</str> </arr> <arr name="env"> <str>MYVAR=val1</str> </arr> </listener> </updateHandler> |
表3-12中<updateHandler>元素的class属性指明使用哪个类进行索引更新操作。子元素<autoCommit>指明在何时对索引数据进行提交(也就是将内存中的索引写到硬盘),表3-12中指明在内存中缓存的文档数目达到10000或时间达到1000时进行提交。<listener>配置一个“监听器”,这个“监听器”在特定的事件发生时将被触发。
l <query>
该元素是配置一些查询相关参数,以提高查询的性能。一些常用的配置参数在表3-13中予以显示。<maxBooleanClauses>元素指明了布尔查询所允许的子句的数目。<queryResultCache>、<documentCache>和<filterCache>是对三种缓存的配置。<queryResultWindowSize>设置查询结果窗口大小,即返回多少个查询结果。<maxWarmingSearchers>指明可以同时“预热”多少个搜索器。关于搜索器是否允许预热的配置是通过对<useColdSearcher>元素的设置来实现的。与更新处理器中一样,查询过程也可以配置一些“监听器”用于特定事件的处理。
表3-13查询参数的配置
<query> <maxBooleanClauses>1024</maxBooleanClauses> <filterCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="256"/> <queryResultCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="256"/> <documentCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="0"/> <enableLazyFieldLoading>true</enableLazyFieldLoading> <queryResultWindowSize>10</queryResultWindowSize> <HashDocSet maxSize="3000" loadFactor="0.75"/> <boolTofilterOptimizer enabled="true" cacheSize="32" threshold=".05"/> <listener event="newSearcher" class="solr.QuerySenderListener"> <arr name="queries"> <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst> <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst> </arr> </listener> <useColdSearcher>false</useColdSearcher> <maxWarmingSearchers>4</maxWarmingSearchers> </query> |
l <requestDispatcher>
这里配置可以被HTTP的requestDispatcher使用的一些参数。
l <requestHandler>
可以定义多个请求处理器,这些处理器可以在查询和索引数据更新的时候使用。
l <queryResponseWriter>
可以定义多个结果处理器,这些结果处理器会以不同的方式返回结果,通常两种返回结果的方式XML和XSLT。
了解更多详情请登录超人学院网站http://www.crxy.cn?sxy或者关注超人学院微信号:CRXY-CN