如何在弹性搜索中为动态字段创建动态范围

时间:2015-09-23 07:39:16

标签: java elasticsearch

我需要使用动态模板为索引中的未知新字段创建动态映射。我的示例映射是:

{  
   "indexname":{  
      "dynamic_templates":[  
         {  
            "template_1":{  
               "match":"*",
               "dynamic fields":{  
                  "type":"dynamictype",
                  "index":"not_analyzed"
               }
            }
         }
      ]
   }
}

我对创建动态映射感到有点困惑,任何人都可以指导我解决这个问题。

我想在运行时创建映射多个字段,使用java API可以指导我。

1 个答案:

答案 0 :(得分:1)

按照:

 {
      "dynamic_templates": [
        {
          "template_1": {
            "path_match": "*",
            "mapping": {
              "index": "not_analyzed",
              "type": "string"
            }
          }
        }
      ]
    }

我不太确定' dynamictype'在你的代码中。您必须指定确切的类型。

编辑:

{
  "dynamic_templates": [
    {
      "dynamic_1": {
        "path_match": "abcd*",
        "mapping": {
          "include_in_all": true,
          "index": "not_analyzed",
          "type": "string"
        }
      }
    },
    {
      "dynamic_2": {
        "path_match": "address.phone.*",
        "mapping": {
          "include_in_all": true,
          "type": "long"
        }
      }
    }
  ]
}

第一个(名为template_1)将应用于以' abcd'开头的所有新字段。第二个(名为template_2)将应用于所有嵌套字段,其中包含' phone'它已经嵌套在'地址'字段。