使用日期 属性 的 Hibernate 搜索 MultiFieldQueryParser

Hibernate Search MultiFieldQueryParser with a Date property

我从 Hibernate Search 4.4 升级到 5.3 并成功迁移了 Hibernate Search Migration Guides 中的所有问题,但是我在使用 MultiFieldQueryParser 时遇到了关于日期 属性 的以下错误。

org.hibernate.search.exception.SearchException: HSEARCH000233: The specified query '+(dateField:value)' contains a string based sub query which targets the numeric encoded field(s) 'myDate'. Check your query or try limiting the targeted entities.

我的约会对象属性很标准

@Column(name = "my_date")
@Temporal(TemporalType.TIMESTAMP)
@Field
@DateBridge(resolution = org.hibernate.search.annotations.Resolution.DAY)
private Date myDate;

版本

还发现了这个关于日期值的问题 (HSEARCH-1870),不确定是否相关。

我在 myDate 声明中遗漏了什么吗?

编辑:错过了一项迁移要求 - 请参阅下面的回答。

事实证明我错过了一个迁移要求:默认情况下,编码在 HS 5 中设置为数字。

设置 encoding 以模仿以前版本中的行为修复了它。

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