可以预先缓存请求吗?

时间:2019-02-03 21:07:50

标签: solr full-text-search solrcloud

在我的系统中,我有很多要提供给用户的复杂请求。用户可以使用我的变体或键入自己的请求。 solr可以在建立索引时预先缓存我的各种请求吗?

1 个答案:

答案 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。