我想知道如何使用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;
我的要求是找到两个日期之间分析的记录,例如。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 。