spring-boot-starter-data-elasticsearch(elasticsearch7.14)@Document 和 @Field 注解详解

maven包:

<dependency>
   <groupId>org.elasticsearch</groupId>
   <artifactId>elasticsearch</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

@Document 注解:

public @interface Document {
  
String indexName(); //索引库的名称,个人建议以项目的名称命名
  
String type() default ""; //类型,个人建议以实体的名称命名
  
short shards() default 5; //默认分区数
  
short replicas() default 1; //每个分区默认的备份数
  
String refreshInterval() default "1s"; //刷新间隔
  
String indexStoreType() default "fs"; //索引文件存储类型
}

@Field注解:

public @interface Field {
  
FieldType type() default FieldType.Auto; //自动检测属性的类型,可以根据实际情况自己设置
  
FieldIndex index() default FieldIndex.analyzed; //默认情况下分词,一般默认分词就好,除非这个字段你确定查询时不会用到
  
DateFormat format() default DateFormat.none; //时间类型的格式化
  
String pattern() default "";
  
boolean store() default false; //默认情况下不存储原文
  
String searchAnalyzer() default ""; //指定字段搜索时使用的分词器
  
String indexAnalyzer() default ""; //指定字段建立索引时指定的分词器
  
String[] ignoreFields() default {}; //如果某个字段需要被忽略
  
boolean includeInParent() default false;
}

@FieldType类型:

public enum FieldType {
    Text, 
    Integer,
    Long,
    Date,
    Float,
    Double,
    Boolean,
    Object,
    Auto,
    Nested,
    Ip,
    Attachment,
    Keyword
}

存储model:

@Data
@Document(indexName = "match-import-data", type = "cust-info")
public class CustInfo {
    @Id
    private String id;
    private String custId;
    private String custUid;
    // 这里配置了分词器,字段类型,可以不配置,默认也可
    @Field(analyzer = "ik_smart", type = FieldType.Text)
    private String custNm;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值