Hibernate 如何在lucene索引中查找结果是否在两个日期之间?

Hibernate 如何在lucene索引中查找结果是否在两个日期之间?,hibernate,spring-boot,search,lucene,hibernate-jpa,Hibernate,Spring Boot,Search,Lucene,Hibernate Jpa,我想知道到期日是否介于今天和另一个指定日期之间。虽然我的数据库有结果,但搜索查询似乎无法获取值。请帮忙 这是正在运行的查询: jpaQuery:FullTextQueryImpl(+成员身份:full_成员+accountManager。名字:nikki+expiryDate:[20190416到20190516}) 此外,数据库的到期日期为YYYY-MM-dd HH:MM:ss格式,不确定如何匹配字段 以下是查询: Query expiringInQuery = queryBuilder

我想知道到期日是否介于今天和另一个指定日期之间。虽然我的数据库有结果,但搜索查询似乎无法获取值。请帮忙

这是正在运行的查询: jpaQuery:FullTextQueryImpl(+成员身份:full_成员+accountManager。名字:nikki+expiryDate:[20190416到20190516})

此外,数据库的到期日期为YYYY-MM-dd HH:MM:ss格式,不确定如何匹配字段

以下是查询:

Query expiringInQuery = queryBuilder
    .range()
    .onField("expiryDate")
    .ignoreFieldBridge()
    .from(DateTools.dateToString(today, DateTools.Resolution.DAY)) 
    .to(DateTools.dateToString(expiringDate, DateTools.Resolution.DAY))
    .excludeLimit()
    .createQuery();
这是关于实体的:

@Field
@Column(name = "expiryDate")
@Temporal(TemporalType.TIMESTAMP)
@JsonIgnore
@IndexedEmbedded
@DateBridge(resolution=org.hibernate.search.annotations.Resolution.DAY, encoding = EncodingType.STRING)
private Date expiryDate;

如果将它们存储在日期字段中,请查看此处:

因此,正确的语法应该是(u可以省略时间)

e、 g DateRangeField还允许以下查询

[2014 TO 2014-12-01]

查看链接。

如果您将它们存储在日期字段中,请查看此处:

因此,正确的语法应该是(u可以省略时间)

e、 g DateRangeField还允许以下查询

[2014 TO 2014-12-01]

查看链接。

这就是最终有效的方法

 String expiringIn = (inputsMap.get("expiringIn").equals("None")) ? "*" : 
 (inputsMap.get("expiringIn"));
 Date today = DateUtils.truncate(new Date(), Calendar.DATE);

 Query luceneQuery = queryBuilder
            .range()
            .onField("expiryDate")
            .from(today)
            .to(expiringDate)
            .createQuery();
关于实体

@Field
@Column(name = "expiryDate")
@Temporal(TemporalType.TIMESTAMP)
@JsonIgnore
@IndexedEmbedded
@DateBridge(resolution = org.hibernate.search.annotations.Resolution.MILLISECOND, 
encoding = EncodingType.STRING)
private Date expiryDate;

这就是最终成功的原因

 String expiringIn = (inputsMap.get("expiringIn").equals("None")) ? "*" : 
 (inputsMap.get("expiringIn"));
 Date today = DateUtils.truncate(new Date(), Calendar.DATE);

 Query luceneQuery = queryBuilder
            .range()
            .onField("expiryDate")
            .from(today)
            .to(expiringDate)
            .createQuery();
关于实体

@Field
@Column(name = "expiryDate")
@Temporal(TemporalType.TIMESTAMP)
@JsonIgnore
@IndexedEmbedded
@DateBridge(resolution = org.hibernate.search.annotations.Resolution.MILLISECOND, 
encoding = EncodingType.STRING)
private Date expiryDate;