Solr indexing-useColdSearcher帮助错误是否为true”;maxWarmingSearchers超过了“;?

Solr indexing-useColdSearcher帮助错误是否为true”;maxWarmingSearchers超过了“;?,solr,out-of-memory,cfindex,Solr,Out Of Memory,Cfindex,大文档集的索引(35K文档);将useColdSearcher设置为true是否有助于避免“maxWarmingSearchers超过”错误? 从CF Admin运行索引重建将在没有错误解释的情况下结束。清除和更新整个目录时出错:超过maxWarmingSearchers。我编写了一个例程来获取所有文件并单独添加它们,随着索引变大,动态增加延迟,让Solr完成每个文档 <cfset delay=1000> <cfdirectory action="list" directory

大文档集的索引(35K文档);将useColdSearcher设置为true是否有助于避免“maxWarmingSearchers超过”错误? 从CF Admin运行索引重建将在没有错误解释的情况下结束。清除和更新整个目录时出错:超过maxWarmingSearchers。我编写了一个例程来获取所有文件并单独添加它们,随着索引变大,动态增加延迟,让Solr完成每个文档

<cfset delay=1000>
<cfdirectory action="list" directory="#dir#files" name="qFiles" >
<cfoutput query="qFiles">
    <cfindex action="update"
    collection="myColl"
    type="file"
    key="#dir#files\#qFiles.name#">
    <cfset sleep(1000+qFiles.currentRow)>
</cfoutput>


这主要起到了作用,但在某个时候仍然会再次出现maxWarmingSearchers错误。最后,我还必须记录索引的文件,并从最后添加的文件开始重新启动进程(以及计算以获得足够长的睡眠时间)。在solrconfig.xml帮助中是否临时将useColdSearcher设置为true,是否有一些后门方法可以在cfindex标记中设置该属性,或者我必须手动设置该属性,然后再将其设置回原位?

您可能需要更多注意自动提交设置,以及调整更新本身的提交设置。除非您在solr配置中指定设置来“预热”缓存,否则使用冷缓存不会为您带来任何好处

从评论中:

<!-- Use Cold Searcher

     If a search request comes in and there is no current
     registered searcher, then immediately register the still
     warming searcher and use it.  If "false" then all requests
     will block until the first searcher is done warming.
  -->
<useColdSearcher>false</useColdSearcher>

假的
听起来这对你没有帮助。您可以增加MaxWarmingSearcher,但很可能需要更改执行提交的频率

另外,请记住,只有软提交总是一个新的搜索者,硬提交不一定。从自动提交的注释中:

<!-- AutoCommit

     Perform a hard commit automatically under certain conditions.
     Instead of enabling autoCommit, consider using "commitWithin"
     when adding documents. 

     http://wiki.apache.org/solr/UpdateXmlMessages

     maxDocs - Maximum number of documents to add since the last
               commit before automatically triggering a new commit.

     maxTime - Maximum amount of time in ms that is allowed to pass
               since a document was added before automatically
               triggering a new commit. 
     openSearcher - if false, the commit causes recent index changes
       to be flushed to stable storage, but does not cause a new
       searcher to be opened to make those changes visible.

     If the updateLog is enabled, then it's highly recommended to
     have some sort of hard autoCommit to limit the log size.
  -->

在您的情况下,如果您使用autoCommit,我建议将openSearcher设置为false,并在发出更新请求时通过使用commitWithin来调整新搜索程序的生成