我使用Hibernate与Hibernate搜索索引弹性搜索(从Java到elasticsearch)中的类+数据。我已经设置并提供了所有的属性。 对于前:禁用在Hibernate搜索提升[弹性搜索映射索引问题,通过休眠搜索]
@Entity
@indexed(name="a")
public class a{
@Id
@Generated value
private integer i;
@Field(index=index.yes, analyze=analyze.no, store=store.yes, norms = norms.no)
private String b;
//Getter and Setter
}
在我的主要方法我传递值到这个类和坚持。当我这样做时,我收到错误消息,其中说
5.0中删除了[字符串]类型。您现在应该使用[text]或[keyword]并且由于boost参数而禁用了自动升级。
给你更多的细节
它发送的Json输入在这个模式
PUT a/a_mapping
{
"properties":{
"i":{
"type": "String"
"boost":1.0,
"index": not_analyzed
"store":yes
},
"b":{
"type": "String"
"boost":1.0,
"index": not_analyzed
"store":yes
我已经玩了之后了解什么是字符串数据类型都弃用ES 5.0,所以“字符串'数据进入,必须转换为'关键字'或'文本',Hibernate搜索orm这样做,如果没有助推参数(我试图手动输入这个有和没有b oost参数,它在后者中起作用)。
所以我得出结论,我必须通过休眠发送数据到ES这两个选项。
1)无论是构建的fieldbridge将数据类型转换从对象到关键字
2)禁用索引时间升压参数,使得升压未输入而索引。
到目前为止,我还没有找到解决方案,任何提示或帮助将不胜感激。
TIA
我在5.8版的hibernate网站上看到过你的帖子,它解决了我在问题中提到的所有问题。感谢您所提供的所有信息。 – BadumTsch
@BadumTsch没问题。如果它解决了您的问题,请不要忘记将答案标记为已接受:) –