我想知道如何使用Range-Query在Hibernate Search中按日期搜索,或者我是否需要实现任何过滤器。以下是我在Record Entity中的字段
/**
* When the analysis started.
*/
@Temporal(TemporalType.TIMESTAMP)
@Field(index = Index.UN_TOKENIZED)
@DateBridge(resolution = Resolution.MILLISECOND)
private Date startTS;
我的要求是找到两个日期之间分析的记录,例如。 11/11/2011至11/11 / 2012.I我很困惑如何做到这一点。
答案 0 :(得分:10)
您应该使用从和到使用范围查询。
query = monthQb
.range()
.onField( "startTS" ).ignoreFieldBridge()
.from( DateTools.dateToString( from, DateTools.Resolution.MILLISECOND ) )
.to( DateTools.dateToString( to, DateTools.Resolution.MILLISECOND ) ).excludeLimit()
.createQuery();
由于您使用 DateTools 自行创建基于字符串的搜索字符串,因此需要ignoreFieldBridge。