我想在使用ElasticsearchTemplate创建新索引时使用elasticsearch.yml中指定的副本数设置。 其目的是根据运行ES的环境设置副本数。 例如:在实时使用4个副本,在测试中使用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的默认值。 有没有办法强制使用每个enrivonment的默认设置?
我认为一种方法可以是使用索引模板,但还有另一种方法吗?
由于
答案 0 :(得分:0)
我不知道您正在使用哪个版本的spring数据弹性搜索,但是在2.1.7中,@Document
中有一个新属性
boolean useServerConfiguration() default false;
如果将其设置为true,则spring数据仓库在创建索引请求时将不带有默认设置。