日期范围查询之hibernate search DateBridge使用
hibernate search 使用串和数的索引和查询都比较简单,但使用日期类型建索引和查询就稍麻烦一点:
?
1 在日期属性上加入@DateBridge注解,如:
?
?使用resolution就可以将日期类型转换为string类型,再建索引,resolution可以有多种形式,见:http://docs.jboss.org/hibernate/stable/search/api/org/hibernate/search/bridge/builtin/DateBridge.html
?
2 建立索引后,进行查询,可以像上一篇《hibernate search和lucene结合使用实例》文章那样使用过滤器的方式,如直接加入检搜条件来搜索:
?
对上面的代码作一下说明:RangeQuery的第一个参数设定左边范围,即指定的field的下界是多少,若没有下界,那么这个参数就是null,而第二个参数是设定右边范围,即指定的field的上界是多少,没有上界,那么这个参数为null,第三个参数为边界值是否包括在内,true表示包括,false表示不包括。
?
我使用的是lucene2.4.1包,所以这里的查询方式如上面,lucene的版本更高,范围查询具体方式有所不同。范围查询具体见下一篇《lunce3.0范围查找TermRangeQuery》
?