transactions - 使用 solrj 进行 solr 事务管理

标签 transactions solr solrj

如何使用 Solrj 处理 Solr 中的事务管理?网上与此相关的文档并不多。但如果有人可以提供与使用 SolrJ 进行事务管理相关的任何链接或信息,我将不胜感激。

最佳答案

对于 Solr 和事务,您必须牢记的一点是不存在隔离。 Solr 不支持我们大多数数据库开发人员习惯的事务方式。

提交使所有客户端的所有待处理更改对新查询可见。同样,回滚会回滚所有客户端的所有挂起的更改。哪个客户端发送提交/回滚命令的考虑为零。

因此,错误处理不应自动导致回滚。因为影响可能不仅仅是错误数据。因此,清理工作可能会变得更加困难。

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

详细信息将取决于 Solr 实例上发生的查询和索引操作的组合(以及您的复制方法)。

这里有一篇很好的 Lucidworks 文章: Understanding Transaction Logs, Soft Commit and Commit In SolrCloud

关于transactions - 使用 solrj 进行 solr 事务管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805117/

相关文章:

java - 使用 solrj 检索 json 格式的 SolrDocument

java - 使用 spring4 @Transactional 时事务不起作用

sql - 使用 Transact-SQL 在 try catch 中使用 tran 进行 alter then update 时出现问题

postgresql - 长时间运行的功能锁定数据库?

solr - 什么是 solr 聚类组件

java - 通过 Solrj 查询 Solr : Basics

spring-boot - 在采用过时值的事务中执行的 Spring native 查询

java - Solr 多核搜索

solr - Apache Solr 能否处理 TB 大数据

java - Solrcloud性能问题