我正在使用java post工具进行solr上传和索引文档目录。有几千个文件。 Solr只会在流程的最后进行一次提交,有时事情会在完成之前停止,所以我会丢失所有工作。
有没有人能提取每个文档的名称并对其进行调用,从而获得每个文档的提交?而不是最后大量提交所有文档?
答案 0 :(得分:0)
从post
工具的帮助页面开始:
Other options:
..
-params "<key>=<value>[&<key>=<value>...]" (values must be URL-encoded; these pass through to Solr update request)
这应该允许您使用-params "commitWithin=1000"
来确保每个文档在添加到索引后的一秒钟内显示出来。
答案 1 :(得分:0)
在每个文档之后提交overkill for the performance,无论如何,如果出现问题,必须从头开始重新提交,这很奇怪。我建议认真地更改正在使用的索引编制策略,而不要以其他方式进行调查以提交。
鉴于,如果您没有其他更改提交配置的方法,我建议按照@MatsLindh的建议在Solr集合/索引中配置autocommit或使用参数commitWithin
。请注意,您使用的工具是否有机会添加此参数。
这些设置控制待处理的更新将被自动推送到索引的频率。 autoCommit的替代方法是 使用commitWithin,可以在进行更新时定义 请求Solr(即在推送文档时)或进行更新 RequestHandler。