如何在elasticsearch动态模板中为动态字段创建别名?

时间:2014-09-16 19:48:34

标签: elasticsearch mapping

我正在使用elasticsearch 1.0.2并在索引中使用示例动态模板。无论如何,我们可以从动态字段名称

的一部分派生字段索引名称

这是我的模板

{"dynamic_templates":[
  "dyn_string_fields": {
    "match": "dyn_string_*",
    "match_mapping_type": "string",
    "mapping": {
      "type": "string",
      "index" : "analyzed",
      "index_name": "{name}"
    }
  }
}]}

动态模板有效,我可以添加字段。我们的目标是使用" dyn_string _"添加字段。前缀但在搜索时应该只是没有" dyn_string _"的字段名。字首。我使用match_mapping_type测试添加字段,但这将允许添加任何字段。有人有什么建议吗?

我查看了Elasticsearch API,他们在1.3中有一个转换功能,允许在插入之前修改文档。(遗憾的是我无法升级到该版本。)

1 个答案:

答案 0 :(得分:2)

在单个模板中,可以设置几个别名。有关快速示例,请查看此虚拟示例:

    curl -XPUT localhost:9200/_template/test_template -d '
{
    "template" : "test_*",
    "settings" : {
        "number_of_shards" : 4
    },
    "aliases" : {
        "name_for_alias" : {}
    },
    "mappings" : {
         "type" : {
        "properties" : {
          "id" : {
            "type" : "integer",
            "include_in_all" : false
          },
          "test_user_id" : {
            "type" : "integer",
            "include_in_all" : false
          }
        }
      }
    }
}
' 

有" name_for_alias"你是简单的别名吗?作为参数,如果要使用别名来过滤数据,则可以定义预设过滤器。

可在此处找到更多信息:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html