solr查询——根据时间范围查询
2014-03-14 16:34
471 查看
一、今天为了满足系统对时间范围查询的需求,开始研究怎么用 solr 对时间建立索引
查看 solr 示例 schema.xml ,发现里面有 date 类型,但是 date类型到底怎么用呢?于是自己就写了一个测试代码。
二、测试过程分析
第一次测试:首先指望 solr可以识别所有的时间格式的字符串,想想也是可笑的?试了一下,果然报错,你随便给它一个时间(比如:2013-04-25),运行时报不是别的时间格式,那什么样的字符串时间格式solr 可以识别呢?查了一下,发现它只是识别:UTC 格式(2013-04-25T22:22:12.000Z)
分析第一次测试:既然 solr 只能识别一种格式的时间字符串,说明 solr肯定自己内部将所有时间格式的东西转化成这个字符串存进去,既然这样,查看一下doc.addField(String,Object),该方法可以接受任意类型的东西,说明时间的话,可以试试直接用 date类型
第二次测试,直接将 Date 类型的东西放进去,结果通过,如此说明,在 schema.xml中声明的类型,都可以在客服端直接用这种类型加进去
三、范围查询语法:闭区间用“[]” ,开去接用”{}“,一开一闭就是“[},{]”
四、怎么设置 schema.xml 中的配置
首先可以参考实例配置里面的配置,明白一点只有在 fildType设置的才能在field里面使用,还可以使用动态的,以后一点一点研究
五、document add 具体干了什么事?查看源码,以后博客分析源码!待续
查看 solr 示例 schema.xml ,发现里面有 date 类型,但是 date类型到底怎么用呢?于是自己就写了一个测试代码。
二、测试过程分析
第一次测试:首先指望 solr可以识别所有的时间格式的字符串,想想也是可笑的?试了一下,果然报错,你随便给它一个时间(比如:2013-04-25),运行时报不是别的时间格式,那什么样的字符串时间格式solr 可以识别呢?查了一下,发现它只是识别:UTC 格式(2013-04-25T22:22:12.000Z)
分析第一次测试:既然 solr 只能识别一种格式的时间字符串,说明 solr肯定自己内部将所有时间格式的东西转化成这个字符串存进去,既然这样,查看一下doc.addField(String,Object),该方法可以接受任意类型的东西,说明时间的话,可以试试直接用 date类型
第二次测试,直接将 Date 类型的东西放进去,结果通过,如此说明,在 schema.xml中声明的类型,都可以在客服端直接用这种类型加进去
三、范围查询语法:闭区间用“[]” ,开去接用”{}“,一开一闭就是“[},{]”
四、怎么设置 schema.xml 中的配置
首先可以参考实例配置里面的配置,明白一点只有在 fildType设置的才能在field里面使用,还可以使用动态的,以后一点一点研究
五、document add 具体干了什么事?查看源码,以后博客分析源码!待续
相关文章推荐
- Oracle中根据时间范围查询数据
- Oracle中根据时间范围查询数据
- bootstrap-datepicker限定可选时间范围 一、应用场景 实际应用中可能会根据日期字段查询某个日期范围内的数据,则需要对日期选择器可选时间进行限制, 如:开始时间不能大于结束时间,
- solr关于时间范围的查询
- Oracle数据库 根据时间范围 查询 时间范围内的 年 ,月, 日 以及 一天的24小时 (SQL 语句)
- 基于Geomesa服务查询轨迹数据无法根据空间和时间范围进行结果查询
- Mysql根据时间范围查询
- thinkphp根据时间戳查询时间范围内的记录
- mongodb中根据时间范围进行查询
- sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟
- solr中只查询某一个字段的设置与设置时间排序
- hibernate根据时间日期来查询oracle数据库
- django 按时间范围查询数据库
- Oracle根据经纬度查询一定范围内的数据
- [ mysql ] 根据时间查询有效数据
- solr时间查询
- 根据用户输入的时间查询那天的数据
- JSP中根据时间查询
- T-SQL根据日期条件查询,不考虑时间
- bmob根据时间排序分页查询多条数据