solr可以提前缓存请求吗?
Can solr cache requests in advance?
在我的系统中,我有很多复杂的请求要提供给用户。用户可以使用我的变体或键入自己的请求。
solr在构建索引时可以提前缓存我的请求变体吗?
在 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 也会被正确填充。
在我的系统中,我有很多复杂的请求要提供给用户。用户可以使用我的变体或键入自己的请求。 solr在构建索引时可以提前缓存我的请求变体吗?
在 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 也会被正确填充。