如何修复maxWarmingSearchers的超出限制?

d4v*_*v00 22 solr

任何人都知道为什么以及如何解决这个问题,因为我有一个非常繁忙的更新和搜索同时.

打开新搜索者时出错.

maxWarmingSearchers = 2超出限制,稍后再试

Sam*_*zzo 17

正如你在这里解释的那样,你应该减少你提交的次数,或者在solrconfig.xml中更改maxWarmingSearchers的值(这不是一个好习惯)

  • 他们说:"除非你确信你拥有系统资源(RAM,CPU等等)才能安全地做到这一点,否则这样做很有风险"好吧但是你怎么知道你有足够的资源? (2认同)

jcr*_*oll 17

根据Solr FAQ:"超出maxWarmingSearchers的限制= X"是什么意思?

如果你经常遇到这个错误,你可以(理论上)增加你的maxWarmingSearchers中的数量,但这是冒险的,除非你确信你有系统资源(RAM,CPU等)来安全地做到这一点.处理这种情况的更正确的方法是减少发送提交的频率.

这个错误意味着你基本上是经常提交,内部缓存无法跟上你说"清除缓存并让我用新数据搜索"的频率.您需要降低提交的频率.您可以在Near Realtime Search Tuning中找到有关此问题的更多信息,但基本思路是您使用的方面越多,提交之间所需的间隔就越大.

解决这个问题的一种方法是我停止进行手动提交(即让我的应用程序将数据提交给solr然后执行提交请求)并打开solr autocommit.

这是一个例子:

<!-- solrconfig.xml -->
<autoCommit>
  <maxDocs>10000</maxDocs> <!-- maximum uncommited docs before autocommit triggered -->
  <maxTime>15000</maxTime> <!-- maximum time (in MS) after adding a doc before an autocommit is triggered -->
  <openSearcher>false</openSearcher> <!-- SOLR 4.0.  Optionally don't open a searcher on hard commit.  This is useful to minimize the size of transaction logs that keep track of uncommitted updates. -->
</autoCommit>
Run Code Online (Sandbox Code Playgroud)

你必须弄清楚你需要多大的间隔(即maxTime),但实际上每次我向我的应用程序添加更多的分面搜索(或更多的索引或你有什么)我必须增加间隔.

如果您需要比这些提交的频率更多的实时搜索,则可以查看Solr软提交.