elasticsearch RangeFilter实例-实现时间范围过滤
2015-09-30 00:00
543 查看
需求:我们搜索文章范围在近一年之内。这时候我们就用到elasticsearch RangeFilter了
具体例子如下:
经测试,以上方式用于时间不行,其实直接用时间来进行计算就可以了:
如果updatetime在数据库里或在创建索引的时候是以Date格式保存的.那么直接可以这样写:
otherDate就是指一个时间 类型为java.util.Date
具体例子如下:
long current=System.currentTimeMillis()/1000l; Calendar ca = Calendar.getInstance();//得到一个Calendar的实例 ca.setTime(new Date()); //设置时间为当前时间 ca.add(Calendar.YEAR, -1); //年份减1 Date lastYear = ca.getTime(); QueryStringQueryBuilder queryBuilder = new QueryStringQueryBuilder("中国经济"); queryBuilder.analyzer("ik").field("title"); FilteredQueryBuilder query = QueryBuilders.filteredQuery( queryBuilder, FilterBuilders.boolFilter() .must(FilterBuilders.rangeFilter("updatetime").from(lastYear.getTime()/1000l).to(current)));
经测试,以上方式用于时间不行,其实直接用时间来进行计算就可以了:
如果updatetime在数据库里或在创建索引的时候是以Date格式保存的.那么直接可以这样写:
FilteredQueryBuilder query = QueryBuilders.filteredQuery( queryBuilder, FilterBuilders.boolFilter() .must(FilterBuilders.rangeFilter("updatetime").from(otherDate).to(new Date())));
otherDate就是指一个时间 类型为java.util.Date
相关文章推荐
- possible SYN flooding on port 7244. Sending cookie
- 最近关于换工作的总结
- StackOverflow程序员推荐:每个程序员都应读的30本书
- 交通违章查询接口代码示例
- Writing udev rules
- unity 基于Assetbundle的更新机制的设计
- java 查找、替换
- iOS 开发----CGAffineTransform平移,旋转,缩放
- 服务器cpu个数查看命令
- 在mysql中修改表名的sql语句
- awk统计httpd占用的内存
- leetcode笔记:Path Sum
- SSAS计算列如果是中文名称时,必须要在名字外加中括号
- 【Foundation-37-2】#import <Foundation/NSIndexSet.h>可变索引集合
- 基于openssl 的https服务配置
- 过马观花学协议
- codeforces Zublicanes and Mumocrates
- 结对代码复审结果
- 笔记09 saveFileDialog
- 博客变更通知 http://blog.csdn.net/ostea