solr - 当您的查询类似于“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%)。initialSize
autowarmCount
任何人都可以建议一种方法来减少使用这种配置的查询结果缓存的预热时间吗?
解决方案
推荐阅读
- rust - 是否有任何方便的方法来修改 Rust 结构的字段,同时克隆它而不不必要地克隆要修改的字段?
- javascript - 在函数中使用 Jest 测试 promise 的结果
- python - 如何有条件地为堆积条形图分配颜色?
- r - 如何使用荧光笔列在 ggplot 中映射动态颜色?
- c - 如何在 c 中计算结构的大小以进行管道读取?
- linux - 我可以将 Tab 键替换为自动键中的触发键吗?
- javascript - 我不能不使用 compose withRouter 和 withAlert Reactjs
- wordpress - 根据日期选择器行项目从 ACF 中继器组中删除行
- apache - .htaccess 从子域重定向到虚拟文件夹
- python - ***TypeError:“str”和“int”的实例之间不支持“<”