我使用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]
所以,请帮我解决这个问题
答案 0 :(得分:0)
我通过删除包含elasticsearch数据的data
文件夹解决了这个问题。
答案 1 :(得分:0)
您不能更改现有映射。
如果您可能会丢失数据,请删除索引,然后使用新的映射重新创建索引。 如果您需要保留数据-使用新映射创建新索引,并将数据从旧索引复制到新索引-它们将旧索引更新为日期,并使用旧名称创建别名以指向新索引
在您的情况下,我怀疑您创建的索引的字段未标记为@CompletionField,以后又添加了注释,以及为什么会看到该错误。