如何为索引创建通用映射模板?

时间:2016-02-01 07:18:27

标签: elasticsearch

对于我创建的应用,索引会在一周内生成一次。并且数据的类型和性质没有变化,这意味着,我需要为这些索引使用相同的映射类型。弹性搜索是否有可能在创建所有索引时将相同的映射应用于所有索引?这可以避免每次创建索引时定义映射的开销。

2 个答案:

答案 0 :(得分:1)

当然,您可以使用所谓的index template。由于您的映射类型是稳定的,因此这是使用索引模板的最佳条件。

就像创建索引一样简单。请参阅下文,只要您希望索引名称与my_*匹配的索引中的文档,ES将选择该模板并使用给定的映射,设置和别名为您创建索引:

curl -XPUT localhost:9200/_template/template_1 -d '{
    "template" : "my_*",
    "settings" : {
        "number_of_shards" : 1
    },
    "aliases" : {
        "my_alias" : {}
    },
    "mappings" : {
        "my_type" : {
            "properties" : { 
                "my_field": { "type": "string" }
            }
        }
    }
}'

这基本上是Logstash在需要为新的每日索引中的每个新日期索引新日志时使用的技术。

答案 1 :(得分:0)

您可以使用索引模板来解决您的问题。可以找到官方文档here。 可以在此blog

中找到如何将其应用于示例的用例