gpt4 book ai didi

java - 具有日期属性的 Hibernate Search MultiFieldQueryParser

转载 作者:行者123 更新时间:2023-11-29 05:02:50 26 4
gpt4 key购买 nike

我从 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;

版本

  • hibernate 4.3
  • hibernate 搜索 5.3
  • 必须为 org.apache.lucene.queryparser.classic.MultiFieldQueryParser 显式导入 (maven) org.apache.lucene.lucene-queryparser (4.10.4) , 否则找不到

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

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

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

最佳答案

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

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

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

关于java - 具有日期属性的 Hibernate Search MultiFieldQueryParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com