在使用 ElasticsearchTemplate 创建新索引时,我想使用在 elasticsearch.yml 中指定的副本数的设置。这样做的目的是根据 ES 运行的环境来设置副本的数量。例如:在 live 中使用 4 个副本,在 test 中使用 2 个副本。
我认为这可以通过在每个环境的 elasticsearch.yml 中将副本数设置为适当的值来实现。
但是,当我使用 ElasticsearchTemplate(例如,使用 Spring Data ES 存储库)创建新索引时,创建索引请求包含来自 @Document 注释的默认值 1。
@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {
String indexName();
String type() default "";
short shards() default 5;
short replicas() default 1;
String refreshInterval() default "1s";
String indexStoreType() default "fs";
}
因此,不使用 elasticsearch.yml 中的默认值。有没有办法强制使用每个环境的默认设置?
我认为一种方法可以是使用索引模板,但还有另一种方法吗?
谢谢