gpt4 book ai didi

java - 使用 hibernate-search 索引枚举类型字段

转载 作者:行者123 更新时间:2023-11-30 06:19:28 25 4
gpt4 key购买 nike

当我想使用的索引是枚举类型时,我在使用 Hibernate 搜索时遇到问题。

这是我的应用程序的示例:

@Entity
@Indexed
public class MyEntity{
@Id
@Field
public Long id;
@Field(bridge=@FieldBridge(impl=EnumBridge.class))
public Flavour flavour;
}

public enum Flavour {
vanilla,
chocolate,
strawberry,
pistacchio;
}

然后我尝试使用这种类型的查询来查找所有实例。

QueryBuilder qb = [~] ;
Query q = qb.keyword().onField("flavour").matching(Flavour.vanilla).createQuery();

当我测试这个时,结果总是空的。我什至尝试使用 Luke 查看索引的内容,但我似乎没有找到“味道”。提交更改后,我会重新索引所有内容。除枚举字段外,其他所有类型的索引和查询都可以完美运行。

我几乎尝试了normsanalyzeindexstore、... @Field 注释(我正在使用 Hibernate-search 4.5.x 和 hibernate 4.3.1)。

我做错了什么?我应该查看任何设置吗?欢迎任何帮助。

最佳答案

实体似乎使用序号存储 flavor (因此列 flavor 包含 0 而不是“ Vanilla ”)。

我不知道 EnumBridge 在做什么,但我建议将枚举存储为字符串:

@Entity
@Indexed
public class MyEntity{
@Id
@Field
public Long id;

@Field(bridge=@FieldBridge(impl=EnumBridge.class))
@Enumerated(EnumType.STRING)
public Flavour flavour;
}

关于java - 使用 hibernate-search 索引枚举类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056329/

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