package com.cyb.elasticsearch.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; 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 org.springframework.data.elasticsearch.annotations.Mapping; import java.io.Serializable; /** * @author cyb * @date 2021/11/26 上午11:51 */ @Data @Document(indexName = "product") @AllArgsConstructor @NoArgsConstructor @Builder //@Mapping(mappingPath = "product_mapping.json") public class Product extends SampleEntity implements Serializable { //必须有 id,这里的 id 是全局唯一的标识,等同于 es 中的"_id" @Id private Long id; /** * type : 字段数据类型 * analyzer : 分词器类型:当查询query时,Elasticsearch会根据搜索类型决定是否对query进行analyze,然后和倒排索引中的term进行相关性查询,匹配相应的文档。 * index : 是否索引(默认:true):当一个文档被索引时,每个Field都可能会创建一个倒排索引(Mapping可以设置不索引该Field) * Keyword : 短语,不进行分词 */ @Field(type = FieldType.Text, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word") private String title;//商品名称 @Field(type = FieldType.Keyword) private String category;//分类名称 @Field(type = FieldType.Double) private Double price;//商品价格 @Field(type = FieldType.Keyword, index = false) private String images;//图片地址 }
ES实体类
最新推荐文章于 2024-08-13 08:55:41 发布