前面的几篇博客已经介绍了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>
本文详细介绍了Solr 5.5.3版本中SolrIndexSearcher的相关配置选项,包括监听器设置、缓存配置、查询结果窗口大小及最大缓存文档数量等关键参数。
1942

被折叠的 条评论
为什么被折叠?



