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