我正在使用Solr 3.6.1(我知道它已经老了,应该升级但是不能正确地做到这一点)。 我面临的问题是,只有第一次搜索请求需要花费太多时间(~40Sec),后续请求将在不超过60-70ms的时间内成功响应。
有人能解释我为什么会这样吗?我检查了它不是用户特定的,它只发生在每次重启同一台服务器时。
我试图遵循方法 1.启用(标记为TRUE)useColdSearcher属性 2.创建具有默认值的FirstSearcher,不带任何构面或过滤器
但我没有找到任何方法。有没有人遇到同样的问题,用任何方法克服了这种情况?
感谢您的帮助。 开发。
答案 0 :(得分:0)
Solr在执行第一个查询时填充一些缓存。这可能要花点时间。您可以配置预热查询以防止用户遇到该现象。
请参阅http://wiki.apache.org/solr/SolrCaching了解基础知识。
例如(在你的solrconfig.xml中):
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst><str name="q">warming query</str><str name="fq">type:ebook</str><str name="start">0</str><str name="rows">10</str><str name="excludeFromLogs">1</str></lst>
</arr>
</listener>
<listener event="firstSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst><str name="q">warming query</str><str name="fq">type:ebook</str><str name="start">0</str><str name="rows">10</str><str name="excludeFromLogs">1</str></lst>
</arr>
</listener>
<useColdSearcher>false</useColdSearcher>