Elasticsearch - 动态字段模板映射

时间:2017-04-27 00:29:27

标签: elasticsearch

例如,我想为书籍和文件制作地图。这些书籍和文件有共同的标题字段,但之后它们是不同的字段。所以,我制作了动态模板(这个映射的主要原因是让一些字符串字段设置为关键字,而不是文本)。

   PUT my_index
    {
        "mappings" : {
            "my_type" : {
                "properties" : {
                    "title" : {
                        "type" : "keyword"
                    },
                    "props" : {
                        "dynamic" : true,
                        "dynamic_templates": [
                        {
                          "strings": {
                            "match_mapping_type": "string",
                            "mapping": {
                              "type": "keyword"
                            }
                          }
                        }
                      ]
                    }
                }
            }
        }
    }

我是这样做的,但错误随之而来。

  

“reason”:“无法解析映射[my_type]:未指定类型   field [道具]“,

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

动态模板是类型的根,请参阅the link

你应该像这样

{
  "mappings": {
    "my_type": {
      "properties": {
        "title": {
          "type": "keyword"
        }
      },
      "dynamic_templates": [
        {
          "strings": {
            "path_match":   "props.*",
            "match_mapping_type": "string",
            "mapping": {
              "type": "keyword"
            }
          }
        }
      ]
    }
  }
}