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);
    }
}
相关推荐
key_3_feng3 小时前
反馈闭环:Agent 自我进化的真正引擎
大数据·agent
EnCi Zheng4 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
GlobalInfo4 小时前
重磅发布 | 2026年船体清洁机器人行业研究报告:市场规模、发展前景与十五五战略地图
大数据·人工智能·机器人
海宇服务4 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化
热文新讯5 小时前
迎进博·话疗愈:2026酒店“疗愈睡眠”闭门研讨会在沪举行
大数据·人工智能·物联网
NailiConveyor7 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
梦影_8 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
没落之王8 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法
samLi062010 小时前
【数据集】水星逆行及相关日期窗口数据(1973-2025年)
大数据
updayday85410 小时前
客户附件不该发往旧邮箱,如何在发送前拦截 - Ping64 邮件安全管控
大数据·网络·数据库·安全·智能路由器