Solr读取数据异常

Solr读取数据异常


前话:大家都是知道Solr的请求方式为:get请求,

在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码。

虽然Http协议规定了,但是Web服务器和浏览器对URI都有自己的长度限制。

服务器的限制:我接触的最多的服务器类型就是Nginx和Tomcat,对于url的长度限制,它们都是通过控制http请求头的长度来进行限制的,Nginx的配置参数为large_client_header_buffers,tomcat的请求配置参数为maxHttpHeaderSize都是可以自己去进行设置。

IE : 2803
Firefox:65536
Chrome:8182
Safari:80000
Opera:190000

对于get请求,在url的长度限制范围之内,请求的参数个数没有限制。

搜索关键字:q

org.apache.solr.client.solrj.SolrServerException: Error executing query
    at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:98)
    at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
    at com.mediaadx.dmp.comset.common.solr.solrcloud.SolrCloudServerImpl.main(SolrCloudServerImpl.java:115)
Caused by: java.lang.RuntimeException
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:115)
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:83)
    at org.apache.solr.common.cloud.ZkStateReader.<init>(ZkStateReader.java:138)
    at org.apache.solr.client.solrj.impl.CloudSolrServer.connect(CloudSolrServer.java:140)
    at org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrServer.java:165)
    at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
    ... 2 more

这是保留的草稿,大概情况是因为,查询字符串太长了,超过了服务器所能处理的长度。

可以参考这篇文章修改:

设置Tomcat服务器的HTTP首部长度最大值

posted @ 2016-10-17 16:15  Nihility丶  阅读(89)  评论(0编辑  收藏  举报