ES动态索引——日志es索引数据按月份存储

一、定义ES索引

java 复制代码
@NoArgsConstructor
@AllArgsConstructor
@Data
@Accessors(chain = true)
@Document(indexName = "charge_pile_log" + Constants.ES_TIME_DYNAMIC_INDEX) //(索引名称动态,前面固定,后面月份)
public class ChargePileLogESDomain {

    @Id
    private String id;

    @Field(type = FieldType.Integer)
    private Integer businessType;
}

public static final String ES_TIME_DYNAMIC_INDEX = "-#{ T(com.energy.cloud.log.service.util.DateUtil).getUTCMonth() }";

二、定义Repository

java 复制代码
import com.energy.cloud.log.service.domain.ChargePileLogESDomain;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface ChargePileLogRepository extends ElasticsearchRepository<ChargePileLogESDomain, String> {
}

三、存储数据

java 复制代码
 @Resource
 private ChargePileLogRepository chargePileLogRepository;

List<ChargePileLogESDomain> saveList = new ArrayList<>();
chargePileLogRepository.saveAll(saveList);

四、查询数据(索引名称带通配符)

java 复制代码
SearchRequest request = new SearchRequest(charge_pile_log*);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
request.source(searchSourceBuilder);
SearchResponse searchResponse = restHighLevelClient.search(request, RequestOptions.DEFAULT);

五、常量类和工具类

java 复制代码
 public static final String ES_TIME_DYNAMIC_INDEX = "-#{ T(com.energy.cloud.log.service.util.DateUtil).getUTCMonth() }";


public class DateUtil {
   public static String getUTCMonth(){
        //设置日期格式为yyyy-mm
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM");
        //获取拾取为UTC的时间
        DateTime now = DateTime.now(DateTimeZone.UTC);
        return fmt.print(now);
    }
}
相关推荐
阿里云大数据AI技术1 小时前
阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%
大数据·阿里云·云计算·emr·弹性伸缩
m0_748255263 小时前
基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】
大数据·爬虫·数据分析
我要用代码向我喜欢的女孩表白4 小时前
hadoop常用命令
大数据·hadoop·npm
DX_水位流量监测4 小时前
全自动化河道水位监测系统:实时传输与远程监控
大数据·运维·网络·人工智能·安全·信息可视化·自动化
N串7 小时前
供应链系统设计-供应链中台系统设计(八)- 商品中心设计篇
大数据
m0_748244968 小时前
大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL
大数据·数据库·mysql
RacheV+TNY2642788 小时前
电商数据API接口的安全挑战与应对策略
大数据·开发语言·网络·数据库·人工智能
yuanbenshidiaos8 小时前
【大数据】机器学习-----------贝叶斯分类器
大数据·人工智能·机器学习
Elastic 中国社区官方博客8 小时前
如何通过 Apache Airflow 将数据导入 Elasticsearch
大数据·数据库·elasticsearch·搜索引擎·全文检索·apache
小白的一叶扁舟8 小时前
Elasticsearch(ES)与 MySQL 的对比分析及在 Spring Boot 中的使用
java·数据库·spring boot·后端·mysql·elasticsearch·中间件