首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Hibernate-Search对ENUM类型进行索引和搜索

如何使用Hibernate-Search对ENUM类型进行索引和搜索
EN

Stack Overflow用户
提问于 2019-10-11 05:22:52
回答 1查看 243关注 0票数 0

我在一个Spring,Jpa,Hibernate-Search,Lucene应用程序中工作。我想索引一个具有ENUM属性的JPA实体,并使用Lucene对其进行搜索。我的ENUM中的每个元素都有一个int值。

我在属性上添加了@Field注解,但不起作用。在数据库中,该字段存储为Integer。

代码语言:javascript
复制
@Field
@Enumerated
private STATUS status = STATUS.FIRST;

现在,我想使用Lucene通过这个字段进行搜索

代码语言:javascript
复制
//lucene query to search by that enum field 
queryStatus.should(queryBuilder.keyword().onField("status").matching(1).createQuery());

我不能将枚举存储更改为字符串类型,因为它有其他查询正在工作,并将此枚举概率用作整数,而我不知道如何索引和使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-11 11:29:27

实际上,我能够解决这个问题,在搜索时,我不使用int值,而是将其转换为显式枚举。

代码语言:javascript
复制
queryStatus.should(queryBuilder.keyword().onField("status").matching(MyClass.STATUS.fromValue(status)).createQuery());

这解决了我的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58331281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档