使用solrj Solr的事务管理(solr transaction management usin

2019-09-17 14:17发布

如何使用Solrj来处理事务管理Solr中? 没有与此有关的净多文档。 但我希望如果有人能提供与使用SolrJ事务管理的任何链接或信息。

Answer 1:

你将不得不以编程方式与SolrJ交易处理。 当多次写入处理。

  1. 使用SolrServer API add方法的SolrInputDoucments添加到服务器。
  2. 当添加了所有SolrInputDocuments,调用从SolrServer API提交方法来提交所有更改。
  3. 在从Solr的异常的情况下,如果你想回滚写入Solr的,调用API SolServer回滚方法。
  4. 如果您想回滚写入数据库为好,只是丢回从catch块一个运行时异常。

这是我如何处理的事务管理。 如果任何人有更好的答案,请随时提高了答案。



Answer 2:

你必须保持在使用Solr和交易心态的事情是,没有隔离。 Solr的不支持事务,我们大多数数据库开发人员使用的方式。

提交使得通过新的查询可见的所有客户挂起的更改。 同样,回滚回滚所有客户端的所有挂起的更改。 存在零考虑其中客户端发送的提交/回滚命令。

出于这个原因,错误处理应该不会自动导致回滚。 因为影响可能不仅仅是错误的数据更为广阔。 并清理可能会更加困难,因为结果。

从Solr的文档的指导是使用自动提交。 执行批量操作时,这一点尤其如此。 如果您在批量索引,也许有多个并行的客户,那么最好是自动提交,每隔一段时间(或每那么多文件)。 这导致创建新的较少索引分段并且作为结果总体上较少的碎片索引。

细节将取决于查询和索引操作发生在你的Solr的实例(和你的复制方法)的组合。

这是一个很好Lucidworks文章在这里: 了解事务日志,软提交,并承诺在SolrCloud



文章来源: solr transaction management using solrj