package com.futu.course.es.domain; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.util.Date; @Data // 对 ES 中的 course 进行映射 @Document(indexName = "course") @NoArgsConstructor @AllArgsConstructor public class ESCourse { // 用于 Elasticsearch 的主键注解 @Id @Field(type = FieldType.Long) private Long id; @Field(name = "name", type = FieldType.Text, analyzer = "ik_max_word") private String name; @Field(name = "uid", type = FieldType.Long) private Long uid; @Field(name = "price") private BigDecimal price; @Field(name = "category_id") private Long categoryId; @Field(name = "cover_img") private String coverImg; @Field(name = "create_time", type = FieldType.Date, format = {}, pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; }