SolrJ线程安全

我在Web应用程序中使用CommonsHttpSolrServer。 在多个请求上重用CommonsHttpSolrServer是否安全,还是应该为每个请求实例化一个新对象? 无法在API文档中找到答案。

根据文档和源代码注释,SolrJ是线程安全的。

但是,更新solr时要小心。 根据这篇文章 ,事务是按实例实现的,而不是每个队列实现的。 这意味着每个线程都没有自己的孤立事务来处理。 回滚将回滚每次调用(无论原始线程)到最后一次提交。

总的来说,这意味着您可以安全地使用尽可能多的线程查询(使用相同的CommonsHttpSolrServer)。 但是,如果您希望利用回滚,则需要确保一次只有一个线程更新您的solr实例(无论对象分布如何)。