spring + elaticsearch @Document注释,碎片属性动态分配

时间:2019-03-25 02:06:19

标签: spring-boot elasticsearch spring-data

我有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()}"

如何处理?谢谢

0 个答案:

没有答案