spring-data-elasticsearch支持嵌套对象创建,实体类:
@Document(indexName = "xxxx", type = "ttt")
public class Employee {
@Id
private String id;
private String name;
private Integer age;
@Field( type = FieldType.Nested)
private List<Skill> skills;
指定嵌套对象:
@Field( type = FieldType.Nested)
private List<Skill> skills;
然后,创建mapping:
elasticsearchTemplate.putMapping(Employee.class);
如果存在嵌套对象,而不做声明,会报异常:
java.lang.IllegalArgumentException: object mapping [skills] can't be changed from nested to non-nested