java - spring data elasticsearch动态分片,副本
问题描述
@Document(indexName = "#{indexName.getBanIndexName()}",
shards = 3,
replicas = 2,
refreshInterval = "-1")
.
package org.springframework.data.elasticsearch.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.elasticsearch.index.VersionType;
import org.springframework.data.annotation.Persistent;
@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
public @interface Document {
String indexName();
String type() default "";
boolean useServerConfiguration() default false;
short shards() default 5;
short replicas() default 1;
String refreshInterval() default "1s";
String indexStoreType() default "fs";
boolean createIndex() default true;
VersionType versionType() default VersionType.EXTERNAL;
}
我想使用@annotation 为每个部署环境动态注入分片和副本。
有没有办法将值动态注入到属于@annotation 的short 类型的shards 字段中?
解决方案
您应该使用useServerConfiguration=true
来控制基于部署环境的索引创建。你也可以调用
PUT _index_template/template_1
{
"index_patterns": ["YOUR_INDEX_PATTERN"],
"template": {
"settings": {
"number_of_shards": 3
}
}
在启动您的存储库之前
推荐阅读
- c# - 从 CheckBox 检查现有 id、更新或插入值
- angular - 如何有效访问路由器存储参数?
- ios - 如何在将值传递给 Firebase 电话身份验证以在 Swift 4 中进行验证之前将用户输入从 6 个 OTP UITextFields 存储到属性
- mysql - 按列对查询中的数据进行排序
- excel - 根据标准显示排名
- vb.net - Crystal Reports 折线图颜色突出显示有时不起作用
- javascript - 如何访问子节点 Firestore——未定义 forEach 函数
- wordpress - 在 wordpress 中创建砌体网格
- azure - 如何使用 azure 函数进入正在运行的 Azure 容器实例的 /etc/hosts 文件?
- c - makefile上的致命错误,需要了解问题