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);
    }
}
相关推荐
洛森唛3 小时前
Elasticsearch DSL 查询语法大全:从入门到精通
后端·elasticsearch
字节跳动数据平台7 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术9 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康10 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康1 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天1 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
Elasticsearch2 天前
如何使用 Agent Builder 排查 Kubernetes Pod 重启和 OOMKilled 事件
elasticsearch
Elasticsearch3 天前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive