任何人都知道为什么以及如何解决这个问题,因为我同时有非常繁忙的更新和搜索。
打开新搜索器时出错。
超出 maxWarmingSearchers=2 的限制,请稍后再试
根据Solr 常见问题解答:“超出 maxWarmingSearchers=X 的限制”是什么意思? http://wiki.apache.org/solr/FAQ#What_does_.22exceeded_limit_of_maxWarmingSearchers.3DX.22_mean.3F
如果你经常遇到这个错误,你可以(理论上)增加
maxWarmingSearchers 中的数字,但这样做是有风险的,除非您
确信您有系统资源(RAM、CPU 等)可以执行
安全地进行。处理这种情况更正确的方法是减少
您发送提交的频率。
这个错误意味着您基本上提交得太频繁,并且内部缓存无法跟上您所说的“清除缓存并让我搜索新数据”的频率。您需要减少提交的频率。您可以在此处找到有关此问题的更多信息近实时搜索调整 http://wiki.apache.org/solr/NearRealtimeSearchTuning但基本思想是您使用的方面越多,提交之间所需的间隔就越大。
我解决这个问题的一种方法是停止手动提交(即让我的应用程序将数据提交到 solr,然后执行提交请求)并打开solr自动提交 http://wiki.apache.org/solr/SolrConfigXml#Update_Handler_Section.
这是一个例子:
<!-- 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>
您必须弄清楚您需要多大的间隔(即maxTime
)但在实践中,每次我向应用程序添加更多分面搜索(或更多索引或其他什么)时,我都必须增加间隔。
如果您需要比这些提交的频率更多的实时搜索,您可以查看Solr 软提交 http://wiki.apache.org/solr/NearRealtimeSearch.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)