开发者社区> 未来星狒狒> 正文

solr 常见的问题整理 -费元星

简介: 本文是我在开发过程中遇到的一些问题的整理,有些摘自网上别人的方法。 1. org.apache.solr.client.solrj.SolrServerException: Timeout occured while waiting response from server at: http://...
+关注继续查看

本文是我在开发过程中遇到的一些问题的整理,有些摘自网上别人的方法。

1. org.apache.solr.client.solrj.SolrServerException: Timeout occured while waiting response from server at: http://localhost/solr请求超时

    解决方法:设置setConnectionTimeout和setSoTimeout为1分钟

2. org.apache.solr.common.SolrException: undefined field text

    解决方法: 设置solrConfig.xml <str name="df">id</str> 默认是text

 

3. org.apache.solr.common.SolrException: Invalid Date String时间格式化问题

    主要是Solr使用的是标准的格林威治(GMT)时间 这种(yyyy-MM-dd'T'HH:mm:ss.SSS'Z')北京在东八区 默认时间会-8小时

所以为了满足他这个减8 我的做法是在创建索引格式化日期类型的时候 判断下 把它时间+8 。

所以重新创建一个SolrEntityBinder类 此类是完全copy的DocumentObjectBinder. 只修改了一处。

修改了类中toSolrInputDocument方法

 

 

[html] view plain?
  1. <span style="color:#3333ff;"> //判断是否是日期-------------///  
  2.  if(field.type==Date.class){  
  3.     Date d = (Date)field.get(obj);  
  4.     Calendar cal = Calendar.getInstance();  
  5.     cal.setTimeInMillis(d.getTime());  
  6.     cal.add(Calendar.HOUR, 8);  
  7.     d = cal.getTime();  
  8.     doc.setField(field.name,d,1.0f);  
  9.  }else{  
  10.   doc.setField(field.name, field.get(obj), 1.0f);  
  11. }</span>  

4.Solr查询字符串空值

    有时候需要查询某个字段为空的记录,比如当solr做facet时,某个域为空的记录被统计,故也会被查询。
一个例子是职位记录,其中某种原因公司可能为空。这时我们如果想查询公司名称为空的记录可以采用如下语法实现(似乎目前为止只有此方法可行):
-company:[* TO *]  这样你会看到结果集中的记录将含有所有公司名称为空的记录。

 

5.Solr竞价排名功能

    假如你有3个doc想让它们有竞价排名,那就配这3个solr会把这3个放前面,然后是按照默认排序的其他doc 。
参考wiki:http://wiki.apache.org/solr/QueryElevationComponent

6.Solr DisMax 分析

        要用dismax,就必须启用,在solr1.3以后,solr的dismax功能通过 DisMaxQParserPlugin 来解析了。
我测试的版本是3.3,是通过在查询url里添加defType=dismax来启用dismax功能的。通过qt=dismax的话不会起作用的。
通过 defType=dismax 时,Solr 的QueryComponent组件的prepare的方法会取到defType参数的值,去创建对应的quey解析器。

7.Solr 跨核检索

    你在查询的条件里面加上shards=localhost:9095/solr/core0,localhost:9095/solr/core1 。

8.Solr 首位*检索

    solr 支持 *在第一位的搜索,只是性能不好,要扫描全部的倒排链。
未来星开发团队--狒狒 QQ:9715234

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
从一个简单的命令阅读hadoop源码
从一个简单的命令阅读hadoop源码
16 0
吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】(下)
吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】(下)
40 0
吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】(上)
吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】
90 0
Linux系统安装常见报错整理大全
常见错误及解决方案,有其它的欢迎留言补充
111 0
Tomcat配置问题整理
tomcat配置问题
1075 0
sqoop 常用命令整理(二)
这些内容是从sqoop的官网整理出来的,是1.4.3版本的Document,如果有错误,希望大家指正。
1949 0
+关注
未来星狒狒
费元星
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载