package cn.lili.elasticsearch.config; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; /** * @author paulG * @since 2020/10/13 **/ @Data @Builder @Component("elasticsearchProperties") @NoArgsConstructor @AllArgsConstructor @ConfigurationProperties(prefix = "lili.data.elasticsearch") public class ElasticsearchProperties { /** * 请求协议 */ private String schema = "https"; /** * 集群名称 */ private String clusterName = "elasticsearch"; /** * 集群节点 */ @NotNull(message = "集群节点不允许为空") private List clusterNodes = new ArrayList<>(); /** * 索引前缀 */ private String indexPrefix; /** * 连接超时时间(毫秒) */ private Integer connectTimeout = 1000; /** * socket 超时时间 */ private Integer socketTimeout = 30000; /** * 连接请求超时时间 */ private Integer connectionRequestTimeout = 500; /** * 每个路由的最大连接数量 */ private Integer maxConnectPerRoute = 10; /** * 最大连接总数量 */ private Integer maxConnectTotal = 30; /** * 索引配置信息 */ private Index index = new Index(); /** * 认证账户 */ private Account account = new Account(); /** * 索引配置信息 */ @Data public static class Index { /** * 分片数量 */ private Integer numberOfShards = 3; /** * 副本数量 */ private Integer numberOfReplicas = 2; } /** * 认证账户 */ @Data public static class Account { /** * 认证用户 */ private String username; /** * 认证密码 */ private String password; } }