如何在日期之间搜索(Hibernate Search)?

时间:2012-10-10 04:45:13

标签: java hibernate lucene hibernate-search

我想知道如何使用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我很困惑如何做到这一点。

1 个答案:

答案 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。