问题:
系统环境十分复杂。当有大量的任务在执行的时候,SolrClient或SolrTemplate的commit方法可能会因超时而失败。如:
UpdateResponse updateResponse = solrClient.add("solrCore", solrDocCollection);
UpdateResponse ur = solrClient.commit(userConfig.getCompanyCore());//执行这步操作的时候可能会超时报错
解决方法之一:
因为在执行solrClient.add 或其它写操作的时候,solr会将这些操作放在缓存栈里,所以我们可以在solr服务器端设置solr的缓存提交策略。如,每隔1分钟或满n条缓存数据就提交一次。然后,Java程序中就可以不用执行 solrClient.commit 这步操作了。