spring + elaticsearch @Docment аннотация , атрибуты осколков динамическое назначение - PullRequest
0 голосов
/ 25 марта 2019

У меня есть 10 миллиардов данных, и теперь мне нужно разделить их на 12 индексов по месяцам, поэтому, если вы используете springboot + spring-boot-starter-data -asticsearch, @Document annotated indexName, шарды должны реализовать динамическое назначение,теперь indexName в порядке. Динамическое назначение, как показано в следующем коде:

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

Как с этим справиться?Спасибо

...