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

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方法

  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 支持 *在第一位的搜索,只是性能不好,要扫描全部的倒排链。

最新文章

  1. Django model.py表单的默认值 默认允许为空
  2. POJ 2923 状压好题
  3. genymotion不能联网
  4. eclipse中断点调试debug
  5. 【BZOJ】3105: [cqoi2013]新Nim游戏
  6. angularjs 的ng-bind-html过滤了内容的style
  7. Flask 与 Celery 在 windows 下的集成问题
  8. div模拟表格使用display
  9. java编程思想-异常
  10. Hadoop学习笔记Hadoop伪分布式环境建设
  11. delphi 获得memo,Richedit焦点所在行
  12. springboot webmvc初始化:一个登陆异常引出的话题
  13. 【清北学堂2018-刷题冲刺】Contest 3
  14. [日常] Go语言圣经-字节切片与字符串
  15. JAVA操作字符串
  16. linux ping命令
  17. 设计模式之模板方法模式(Java实现)
  18. wamp如何设置数据库的密码
  19. lua小试牛刀
  20. hdu 4512 吉哥系列故事——完美队形I【LCIS经典应用】

热门文章

  1. CentOS下go 安装
  2. BZOJ2141:排队(分块,树状数组)
  3. git branch 进入编辑状态
  4. 理解JavaScript执行环境与作用域
  5. LVS的DR模式负载均衡
  6. composer的基本运用
  7. 【题解】洛谷P2375 [NOI2014] 动物园(KMP)
  8. HDU 1014 Uniform Generator(模拟和公式)
  9. Google File System设计方面的问题汇总
  10. mysql where 加 多个 或者条件