我有一个索引创建时间戳为java.time.Instant
类型的实体,我想按创建时间戳范围对搜索结果进行分析。
该实体看起来如下:
@Entity
@Indexed
public class Document {
@Id
@DocumentId
private Long id;
@Field
private String name;
@Field(analyze = Analyze.NO)
@Facet
private Instant creationTimestamp;
}
当我启动我的应用程序时,我收到以下错误:
org.hibernate.search.exception.SearchException: HSEARCH000264: @Facet is not supported for type 'java.time.Instant'. See org.hibernate.search.bugs.Document#creationTimestamp
我在hibernate documentation中没有找到任何与即时值相关的方面。
是否可以通过创建时间戳范围来构建休眠搜索结果?
我在这里创建了一个失败的测试用例:github repo link
答案 0 :(得分:1)
我担心Hibernate Search faceing子系统尚不支持Java 8日期/时间类型。我创建了一张解决这个问题的机票,但我不知道什么时候会(有内部并发症):https://hibernate.atlassian.net/browse/HSEARCH-2954
与此同时,您可以使用代表时间戳的/account/{username}
长字段来解决这种缺乏支持的问题:
@Transient
然后使用长时间戳查询。
远远不是一个理想的解决方案,但它是我能想到的唯一一个。