在项目中用到SolrJ访问Solr服务器实现全文检索功能,前段时间都挺正常,今天发现在执行某些搜索时容易出现异常:
2010/07/19 15:24:50 ERROR java.net.SocketException: 管道已断开 (errno:32)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:97)
at java.net.SocketOutputStream.write(SocketOutputStream.java:141)
at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:507)
at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:486)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:382)
at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:580)
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:306)
at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:146)
at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:138)
at java.io.OutputStream.write(OutputStream.java:58)
at org.apache.solr.common.util.FastOutputStream.write(FastOutputStream.java:59)
……
<2010-7-19 下午03时24分50秒 GMT+08:00> <Error> <HTTP> <BEA-101020> <[ServletContext@11150740[app:pese module:pese path:/pese spec-version:null]] Servlet failed with Exception
java.lang.IllegalStateException: Response already committed
at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1586)
at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:614)
at org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:362)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:272)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
Truncated. see log file for complete stacktrace
但是从Solr控制台执行搜索时,较少遇到这个异常,在网上搜了一下也没发现有讲得靠谱的人,只能自己解决。在经过N次修改测试后,发现加大
CommonsHttpSolrServer.setConnectionManagerTimeout
的值可以解决问题。该参数官方API的解释是:
Sets soTimeout (read timeout) on the underlying HttpConnectionManager
就是读超时,看来这个应该是比较靠谱的解决方法了。这个值具体调到多少合适还需要实现应用中的网络环境、服务器响应速度等综合起来调整才好,所以建议在应用开发时把这个值做成可配置参数为宜。
分享到:
相关推荐
Solr-Solrj是Apache Lucene项目下的一个子项目,专门为Apache Solr搜索引擎提供Java客户端库。Solr是一款强大的全文检索服务器,而Solrj则是与之交互的Java API,使得开发人员能够轻松地在Java应用程序中集成Solr的...
SolrJ是Apache Solr项目的Java客户端库,它为与Solr服务器进行交互提供了便利的API。这个压缩包包含了两个版本的SolrJ库:solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar。这两个版本的差异主要在于对Solr服务器的...
solrj工具类封装,包括条件批量查询,批量增删改,分段修改。
Solr-Solrj 5.0.0 是一个用于与Apache Solr进行交互的Java客户端库。在本文中,我们将深入探讨Solr-Solrj的使用、功能及其与自建Solr服务的集成,特别是涉及到中文分词的场景。 Apache Solr是一款流行的开源全文...
SolrJ是Apache Solr官方提供的Java客户端库,它使得Java开发者能够轻松地与Solr搜索引擎进行通信,执行查询、索引文档等操作。SolrJ的使用是大数据环境中实现高效全文检索和数据分析的关键组件。在Java项目中,正确...
SolrJ 6.3.0 是一个针对 Apache Solr 的 Java 客户端库,它使得在 Java 应用程序中与 Solr 服务器进行交互变得更加便捷。Solr 是一个流行的开源搜索引擎,用于处理和索引大量文本数据,提供高效、可扩展的全文搜索...
SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr搜索引擎进行交互变得简单。Solr是一个高性能、可扩展的企业级全文搜索引擎,广泛用于内容索引和搜索。SolrJ提供了丰富的API,允许开发者...
### Solr配置与SolrJ使用详解 #### 一、Solr基本安装与配置 **1. 下载Solr** - **步骤说明**: 从Apache官方镜像站点下载Solr 1.4.1版本。 - **操作详情**: 访问链接`http://apache.etoak.com/lucene/solr/`,...
SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr搜索引擎进行交互变得简单。这个压缩包文件包含了SolrJ运行所必需的一些关键库,包括JUnit测试框架、Commons IO和Commons Logging。接下来...
solr-solrj-4.9.0.jar
solr-solrj-4.10.3.jar。
SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr进行交互变得简单。这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的...
solr-solrj-4.4.0.jar
solr-solrj-6.6.0.jar
solr部署在tomcat势必要设置用户权限,所以客户端solrj在创建连接的时候也需要用户名加密码
solr详细配置教程与solrj的使用
solrJ是Java连接solr进行查询检索和索引更新维护的jar包。
java大数据开发中solrJ所需要的核心包.................
里面有非常详细的说明交你怎么使用solrj客户端来操作solrAPI
### Solrj 中文教程知识点概览 #### 一、企业搜索引擎方案选型与Solr简介 ##### 1.1 企业搜索引擎方案选型 在选择企业级搜索引擎时,主要考虑的是灵活性、可扩展性和成本效益。对于门户社区等场景来说,搜索引擎的...