[英]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.