使用elasticsearch.yml中的默认副本配置

时间:2015-04-22 07:47:20

标签: spring elasticsearch spring-data spring-data-elasticsearch

我想在使用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的默认设置?

我认为一种方法可以是使用索引模板,但还有另一种方法吗?

由于

1 个答案:

答案 0 :(得分:0)

我不知道您正在使用哪个版本的spring数据弹性搜索,但是在2.1.7中,@Document中有一个新属性

boolean useServerConfiguration() default false;

如果将其设置为true,则spring数据仓库在创建索引请求时将不带有默认设置。