我有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。 当我尝试像下面的代码一样动态更改它时,出现错误:类型不匹配:无法从String转换为short
shards = "#{documentConfig.getShards() == null?
3:documentConfig.getShards()}"
如何处理?谢谢