• 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首部长度最大值

    学生浅薄 望众师指点
  • 相关阅读:
    FPGA市场潜力有几多?
    FPGA前世今生(四)
    FPGA前世今生(三)
    FPGA前世今生(二)
    FPGA前世今生(一)
    嵌入式视频处理考虑(二)
    常用Linux操作命令
    混合开发学习路线
    Eclipse使用
    ECS的配置与使用
  • 原文地址:https://www.cnblogs.com/Nihility/p/14695668.html
Copyright © 2020-2023  润新知