我正在使用Spring和Elastic Search。我有一个带有Completion字段的实体,该字段用于建议:
@Document(indexName = "entity_index", type = "entity")
public class Entity {
@Id
private Long id;
....
@CompletionField(maxInputLength = 30,payloads = true)
private Completion suggest;
...}
当我启动我的Spring Boot应用程序时,一切都很好,没有错误。但是当我想开始我的弹性搜索单元测试时,我得到了错误:
Failed to load Application Context
....
java.lang.IllegalArgumentException: Can't merge a non object mapping [suggest] with an object mapping [suggest]所以,请帮我解决这个问题
发布于 2017-08-15 23:06:01
我通过删除包含elasticsearch数据的data文件夹解决了这个问题。
发布于 2018-11-09 22:25:49
您不能更改现有的映射。
如果您可以丢失数据-删除索引并使用新的映射重新创建它。如果您需要保留数据-使用新映射创建新索引,并将数据从旧索引复制到新索引-它们会更新旧索引,并使用旧名称创建别名来指向新索引
在您的例子中,我怀疑您已经创建了带有字段not标记为@CompletionField的索引,并在稍后添加了注释,以及您看到该错误的原因。
https://stackoverflow.com/questions/42415187
复制相似问题