我在一个Spring,Jpa,Hibernate-Search,Lucene应用程序中工作。我想索引一个具有ENUM属性的JPA实体,并使用Lucene对其进行搜索。我的ENUM中的每个元素都有一个int值。
我在属性上添加了@Field注解,但不起作用。在数据库中,该字段存储为Integer。
@Field
@Enumerated
private STATUS status = STATUS.FIRST;现在,我想使用Lucene通过这个字段进行搜索
//lucene query to search by that enum field
queryStatus.should(queryBuilder.keyword().onField("status").matching(1).createQuery());我不能将枚举存储更改为字符串类型,因为它有其他查询正在工作,并将此枚举概率用作整数,而我不知道如何索引和使用它。
发布于 2019-10-11 11:29:27
实际上,我能够解决这个问题,在搜索时,我不使用int值,而是将其转换为显式枚举。
queryStatus.should(queryBuilder.keyword().onField("status").matching(MyClass.STATUS.fromValue(status)).createQuery());这解决了我的问题。
https://stackoverflow.com/questions/58331281
复制相似问题