基于字段的动态映射弹性搜索

时间:2015-01-12 11:59:48

标签: elasticsearch

我可以使用通配符模式来确定弹性搜索的索引分析器吗?

例如: “属性”:

{ 
    "0_*" : {"type": "string", "index_analyzer": "standard" } , 
    "1_*" : {"type": "string", "index_analyzer": "my_analyzer"}
}

所以现在如果我将文档索引为

时有一个新字段
{
    "0_title" : "some string", // should use standard analyzer
    "1_title" : "my anazlyer string" // should use my_analyzer
}

无论如何要实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要使用的只是索引模板。 您可以找到有关动态模板here的更多信息 使用索引模板,您可以按如下方式注入规则 -

{
  "person": {
    "dynamic_templates": [
      {
        "template_0": {
          "match": "0_*",
          "mapping": {
            "type": "string",
            "index_analyzer": "standard"
          }
        }
      },
      {
        "template_1": {
          "match": "1_*",
          "mapping": {
            "type": "string",
            "index_analyzer": "my_analyzer"
          }
        }
      }
    ]
  }
}