当前位置: 首页 > 面试题库 >

如何在日期之间进行搜索(休眠搜索)?

辛意智
2023-03-14
问题内容

我想知道如何使用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



 类似资料:
  • 我有两个日期搜索字段,即从和到。我必须从用户表中检索记录,其startDate位于搜索字段中输入的from和to日期之间,如果from和to日期为空,我必须从用户表中检索所有记录。 我尝试了以下hql查询: 这里start_标志的类型为int,如果from和to为null,则设置为1。 这里的数据类型是: startDt-java.util.Date endDt-java.util.Date st

  • 问题内容: 我有两个日期搜索字段,即从和到。我必须从用户表中检索其startDate位于在搜索字段中输入的起始和终止日期之间的记录,如果起始和终止日期为null,则必须从用户表中检索所有记录。 我尝试了以下hql查询: 在这里,start_flag的类型为int,如果from和to为null,则将其设置为1。 这里的数据类型是: startDt-java.util.Date endDt- java

  • 问题内容: 在neo4j中,如何按日期建立索引并在日期范围内进行搜索。同样,对于时间,我也想在日期范围内的上午8点到上午9点之间进行搜索。 问题答案: 将日期和时间索引为整数时间戳。然后,您可以轻松地在索引中搜索其他时间戳记之间的日期。您还可以将时间戳的时间部分分别索引为另一个整数,从而可以查询给定日期之间的特定时间。 示例:要存储的日期和时间是“ 2012-02-05 8:15 AM”,因此在索

  • 问题内容: 我想要 问题是日期存储为! 这是我有约会的例子: 请注意,有些记录有几秒钟,有些则没有 我根本不在乎时间,我只需要日期 是领域 这是行不通的: 这: 正在返回: 这: 正在返回: OMG小马: 我把所有东西都放在第一个空格之前: 现在我得到这个返回: 问题答案: 您想在日期之间进行搜索,并将其存储为日期。通过将它们存储为字符串,您就可以自己射击。您基本上需要从字符串中提取日期部分(使用

  • 问题内容: 考虑: 查询将是这样的: 如何实现按孩子计数? 换句话说,返回的TParent列表的顺序将由TChildSet计数决定。 我知道@Formula可以在SQL环境中使用。我不确定Lucene是否可以使用类似的东西? 任何帮助,指点,评论甚至批评都欢迎。 非常感谢约翰 问题答案: 在hibernate搜索中,您可以为此创建一个自定义Bridge。 类似于以下内容: 使用自定义桥实现:

  • 问题内容: 是否可以仅对hibernate-search的注释(bean => document / document => bean mapping)使用hibernate-search,而不使用数据库?如果是这样,是否有任何在线样本基本上显示了如何进行设置? 我发现了以下内容:http : //mojodna.net/2006/10/02/searchable-annotation-drive