我有100亿个数据,现在必须按月将其划分为12个索引,所以如果使用springboot+spring-boot-starter-data-elasticsearch,@Document注释的indexName,碎片必须实现动态赋值,现在indexName是OK动态赋值,如下面的代码所示:
@Bean
public DocumentConfig documentConfig() {
return new DocumentConfig();
}
@Document(
indexName = "#{documentConfig.getIndexName() ==
null?'jan':documentConfig.getIndexName()}",
type = "_doc",
shards = 3,
replicas = 1
)然后像这样切换索引:
documentConfig.setIndexName(name);
es.save(obj);但是,当我创建一个新的索引时,碎片将成为默认值5。
shards = "#{documentConfig.getShards() == null?
3:documentConfig.getShards()}"怎么处理呢?谢谢
发布于 2022-07-06 09:31:46

在spring-data-elasticsearch中,按实体创建es索引(pojo @Document ),您可以通过@ can、@can、whitch需要在类路径中提供更多的设置文件来定制索引细节。
https://stackoverflow.com/questions/55330432
复制相似问题