java - SolrJ 线程安全

标签 java servlets solrj

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

最佳答案

根据documentation和源码注释一样,SolrJ 是线程安全的。

但是,更新 solr 时要小心。根据this post ,事务是按实例而不是按队列实现的。这意味着每个线程没有自己的隔离事务可以使用。回滚会将每个调用(无论发起线程如何)回滚到最后一次提交。

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

关于java - SolrJ 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371101/

相关文章:

java - 对 servlet 的 Ajax 请求调用不返回任何内容

Java Web 应用程序 - 应用程序启动时加载库

java - Sql事件与Servlet中的ScheduledExecutorService

Solr 索引 : Parent/Child documents

java - 使用已构建路径的 jar 文件中的类文件

java - 在servlet中设置响应头时出现空指针异常

java - 循环无法正常工作

java - 是否可以知道客户端(浏览器)是否与服务器在同一台机器上运行?

java - 为 TermVectors 安装 Solr 补丁

java - RemoteSolrException : ERROR: [doc=2] unknown field 'firstName'