【问题标题】:How to search between dates (Hibernate Search)?如何在日期之间搜索(休眠搜索)?
【发布时间】:2012-09-30 11:54:42
【问题描述】:

我想知道如何使用 Range-Query 在 Hibernate Search 中按日期进行搜索,或者是否有任何过滤器必须实现。以下是我在记录实体中的字段

    /**
     * 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 日。我很困惑如何做到这一点。

【问题讨论】:

标签: java hibernate lucene hibernate-search


【解决方案1】:

您应该使用 fromto 使用范围查询。

query = monthQb
        .range()
            .onField( "startTS" ).ignoreFieldBridge()
            .from( DateTools.dateToString( from, DateTools.Resolution.MILLISECOND ) )
            .to( DateTools.dateToString( to, DateTools.Resolution.MILLISECOND ) ).excludeLimit()
            .createQuery();

ignoreFieldBridge 是必需的,因为您自己使用 DateTools 创建了基于字符串的搜索字符串。

【讨论】:

  • 谢谢你,这就是我要找的...:)
猜你喜欢
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多