在我的系统中,我有很多要提供给用户的复杂请求。用户可以使用我的变体或键入自己的请求。 solr可以在建立索引时预先缓存我的各种请求吗?
答案 0 :(得分:1)
在Solr中构建索引期间没有热缓存,但是,有一个名为query related listeners的功能,您可以在索引搜索器启动时对其进行预热。
有两种类型的事件-firstSearcher
(通常在Solr启动时发生)和newSearcher
,这些事件在准备新的搜索者时触发(硬提交可能是示例之一)这样的事件)
solrconfig.xml
中的部分可能看起来像这样:
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<!--
<lst><str name="q">solr</str><str name="sort">price asc</str></lst>
-->
</arr>
</listener>
<listener event="firstSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst><str name="q">static firstSearcher warming in solrconfig.xml</str></lst>
</arr>
</listener>
您需要做的-列出您的繁琐查询,以便在处理搜索请求之前对其进行预热。这样可以使您以后的搜索速度更快。
别忘了正确使用过滤器的通常规则,这样就可以正确填充FilterCache。