Solr---查询不出结果,异常:org.apache.solr.client.solrj.SolrServerException: IOException occured when

13 篇文章 0 订阅

原地址:https://www.cnblogs.com/mecca/p/3922455.html

场景描述:

        在按照我自己的遇到的问题在网上找解决办法时,偶然发现一篇很有意义的文章,并且按照他的描述非常符合实际效果。Solrj的query(SolrParams params)方法,查询按照默认的GET方法,可以在debug中查看到确实是按照GET方法将参数放到后缀中,解决办法是使用query(SolrParams params, SolrRequest.METHOD method),第二个参数为提交的方式。虽然我还未遇到这个问题,如果按照文章的来参数过长则会发生该问题。所以也当做提前做预防了。

更改前:

SolrQuery query = new SolrQuery();
...
QueryResponse rq = cloudSolrClient.query(query);

更改后:

SolrQuery query = new SolrQuery();
...
QueryResponse rq = cloudSolrClient.query(query, SolrRequest.METHOD.POST);

文章原文:

        最近做项目用solr,之前使用的时候没怎么注意,每次都是直接使用solrServer.query(SolrQuery);使用测试查询表达式什么问题都没有遇到过,等到上线后,产品发现他们的表达式一查就空白的,去后台看下发现报错了:
  org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http:192.168.0.11/solr/,有时候还报 执行query错误,开始以为表达式错误,各种比对,main方法测试,Junit测试,各种不行,都是同一个错!当时愁怀我了,整整弄了一天,后来怕耽误工期,先整其他的,一个半小时以后,整完回头拿老大的代码看了下,原来一直没有发现,在一个不起眼的地方,老大使用的是solrServer.query(SolrQuery,METHOD.POST);恍然大悟,GET方式的时候所有查询条件都是拼装到url上边的,url过长当然没有响应,必然中断talking了,额……一天,就这么白白浪费了,当然也不能说浪费,涨姿势了啊,印象深刻。希望童鞋们使用时注意!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值