首页 > 解决方案 > 当您的查询类似于“q=*:*”时,如何减少查询结果缓存的预热时间?

问题描述

我们的 solr 索引包含约 10,00,000 个文档。我们每 2 小时进行一次批量更新。每次批量更新后,当新搜索器预热时,我们会看到响应时间达到峰值。这是由于查询结果缓存预热需要约 40 秒的预热时间,而且时间过长。此外,查询结果缓存的命中率非常小,即只有约 7%。

我们在 solrconfig.xml 中的配置是这样的:-

对于新搜索者:-

<listener event="newSearcher" class="solr.QuerySenderListener">
  <arr name="queries">
    <lst>
        <str name="q">*:*</str>
        ...
        ...
    </lst>
  </arr>
</listener>

对于查询结果缓存:-

<queryResultCache class="solr.FastLRUCache"
                     size="10000"
                     initialSize="512"
                     autowarmCount="128"/>

我们已经尝试通过更改缓存和来调整查询结果缓存size,但没有减少预热时间(尽管命中率略微增加到约 9%)。initialSizeautowarmCount

任何人都可以建议一种方法来减少使用这种配置的查询结果缓存的预热时间吗?

标签: solr

解决方案


推荐阅读