一、定义ES索引
@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
import com. energy. cloud. log. service. domain. ChargePileLogESDomain ;
import org. springframework. data. elasticsearch. repository. ElasticsearchRepository ; public interface ChargePileLogRepository extends ElasticsearchRepository < ChargePileLogESDomain , String > {
}
三、存储数据
@Resource private ChargePileLogRepository chargePileLogRepository; List < ChargePileLogESDomain > saveList = new ArrayList < > ( ) ;
chargePileLogRepository. saveAll ( saveList) ;
四、查询数据(索引名称带通配符)
SearchRequest request = new SearchRequest ( charge_pile_log* ) ;
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder ( ) ;
request. source ( searchSourceBuilder) ;
SearchResponse searchResponse = restHighLevelClient. search ( request, RequestOptions . DEFAULT ) ;
五、常量类和工具类
public static final String ES_TIME_DYNAMIC_INDEX = "-#{ T(com.energy.cloud.log.service.util.DateUtil).getUTCMonth() }" ; public class DateUtil { public static String getUTCMonth ( ) { DateTimeFormatter fmt = DateTimeFormat . forPattern ( "yyyy-MM" ) ; DateTime now = DateTime . now ( DateTimeZone . UTC ) ; return fmt. print ( now) ; }
}