solr中与SolrIndexSearcher相关的其他配置

前面的几篇博客已经介绍了solrIndexSearcher的cache,warm,listener,其实还有其他的很多的配置,这个博客就是将这些。先声明一下,我的solr是5.5.3.

在solrCOnfig.xml中的<query></query>下的配置都是和SolrIndexSearcher相关的,上一个博客中的<listener>就是在<query>中的。我们看一下在solrconfig.xml中还有那些配置:

  <query>
	<listener event="newSearcher" class="com.comall.solr.listener.HelloWordListener">   这个是配置的监听器
		<arr name="sortFields">   <!-- arr是arraylist -->
			<str>title</str>  
			<str>id</str>  
		</arr>
		<!--str是字符串-->
		<str name="queryKeyFile">/Users/yzygenuine/56workspace/solr_jetty/solr/extConf/query.txt</str>  
		
		<arr name="queries">  
			<lst> <!--lst是一个NamedList  org.apache.solr.common.util.NamedList-->
				<str name="q">solr</str>
				<str name="qt">standard</str>
				<str name="sort">price desc</str>
			</lst>  
		</arr>  
	</listener>  
     <!--booleanQuery的最大的clause的个数,这个是对于整个jvm中的修改-->
    <maxBooleanClauses>1024</maxBooleanClauses>
    <!--之前说的filterCache-->
    <filterCache class="solr.FastLRUCache"  size="512"   initialSize="512"  autowarmCount="0"/>
     <!--之前说的QueryResultCache-->
    <queryResultCache class="solr.LRUCache"size="512"    initialSize="512"  autowarmCount="0"/>
     <!--之前说的-->
    <documentCache class="solr.LRUCache" size="512"      initialSize="512"  autowarmCount="0"/>
    
    <!-- 用户自定义的cache,在SolrIndexSearcher中的getCache(String)就是从这个cache中查找,这个是可以配置多个的,在solrConfig的构造方法中可以发现,对多个的配置封装为一个数组 --> 
    <cache name="perSegFilter"  class="solr.search.LRUCache"  size="10"  initialSize="0"  autowarmCount="10" regenerator="solr.NoOpRegenerator" />

    <!-- 对于那些还没有在DocumentCache中缓存的doc是否懒加载,优先选择true   -->
    <enableLazyFieldLoading>true</enableLazyFieldLoading>

   <!-- 这个表示最小的查询数量:因为要对查询结果缓存,这个表示要从索引中查找的最小的doc的数量,他的使用在org.apache.solr.search.SolrIndexSearcher.getDocListC(QueryResult, QueryCommand)方法中 -->
   <queryResultWindowSize>20</queryResultWindowSize>

   <!-- 在queryResultCache中对于一个queryKey可以缓存最大的doc的数量,如果一次查询的请求的数量太大,则不进行缓存。这个可以针对业务需求进行调整,尤其是分页查询的时候 -->
   <queryResultMaxDocsCached>200</queryResultMaxDocsCached>

    <!-- 对于一个没有预热的SolrIndexSearcher是否允许其注册为供服务使用的searcher,他的使用为org.apache.solr.core.SolrCore.getSearcher(boolean, boolean, Future[], boolean),
         如果当前没有供服务使用的searcher,如果可以使用不预热的searcher的话就会将这个没有预热的searcher进行注册,如果不可以,则要预热-->
    <useColdSearcher>false</useColdSearcher>

    <!-- 这个值表示后台预热的searcher的最大数量,如果有超过这个值的searcher,那么再commit的时候就会报错,也就是如果有多个commit同时发生就会报错。他的使用在org.apache.solr.core.SolrCore.getSearcher(boolean, boolean, Future[], boolean)中。
         Recommend values of 1-2 for read-only slaves, higher for  masters w/o cache warming.
      -->
    <maxWarmingSearchers>2</maxWarmingSearchers>

  </query>

猜你喜欢

转载自suichangkele.iteye.com/blog/2365873
今日推荐