[英]ElasticSearch index template versioning
我的应用程序在ElasticSearch上创建索引模板。 稍后,应用程序将更新,需要更新索引模板以支持新字段。
有没有办法为索引模板设置一些标识符(除了它的名称总是相同的),这样我的应用程序可以比较应用程序版本和部署版本之间的这些值? (唯一ID / ETag /其他)
或者,如果我无法检测到差异:多次修改索引模板的成本是多少,主要是不执行实际更改的修改?
我可以找到它使用哪个模板的索引(以及它的哪个版本,如果存在这样的能力)?
谢谢。
创建索引模板时,您可以使用映射元数据来存储所需的额外信息,以了解创建映射的应用程序版本。
PUT _template/my_template
{
"template" : "logstash-*",
"mappings" : {
"logs" : {
"_meta" : {
"product" : "my_product",
"version" : "1.0.1"
},
"_source" : {"enabled" : "true"},
"properties" : {
}
}
}
}
然后查询现有索引以查找上次创建的索引,然后获取其映射。
GET logstash-2015.10.08/_mapping
你会在里面找到映射和元数据。
这对于存储映射关联的产品版本非常有用。
"version": <version number>
来使用ElasticSearch的模板版本控制功能。 资料来源: https : //www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html#versioning-templates
我之前通过使用版本号,构建ID或时间戳作为索引名称的一部分(并使用索引别名指向每个应用程序的相关索引)解决了这个问题。
有关更详细的示例,请参阅此帖子: https : //www.elastic.co/blog/changing-mapping-with-zero-downtime
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.