在Solr的构建索引期间没有热缓存,但是,有一个称为的功能 查询相关的侦听器 有了这个,你可以在索引搜索者开始时给他们加温。
有两种类型的事件 - firstSearcher (这通常发生在Solr初创公司)和 newSearcher ,当准备新的搜索者时触发(硬提交可能是此类事件的一个例子)
firstSearcher
newSearcher
中的部分 solrconfig.xml 可能看起来像这样:
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。