1

我是 ElasticSearch 的新手。我正在查看一些索引文件定义,并遇到了“映射”和“映射”一词,如下所示。我搜索了 elasticsearch 的文档站点,发现这两个词都有点提及,但从未明确解释过两者的区别。“映射”只是“映射”的复数,它们接受相同的参数吗?单数映射是否不同,因为它嵌套在“dynamic_templates”范围内?这似乎是这种情况,但我在文档中找不到任何东西来证实这一点。谢谢

 { <--- top level
      ...some JSON...
      "mappings": { //<--- plural
        "_doc": {
          "dynamic_templates": [
            {
              "space": {
                "match_mapping_type": "string",
                "match": "space",
                "mapping": { <--- singular!
                  "type": "keyword",
                  "ignore_above": 64,
                  "fields": {
                    "analyzed": {
                      "type": "text",
                      "analyzer": "english"
                    }
                  }
                  ...more JSON...
4

1 回答 1

1

第一次mappings出现是您可以定义映射类型的结构。历史上,允许在单个索引中定义多个映射类型,但由于映射重构大,只允许一种映射类型。所以这就是为什么mappings是复数形式。它很快就会消失。

第二个mapping只是定义动态字段模板时的关键字。该match*部分仅标识动态字段,该mapping部分定义该字段的映射。这是一种高级功能,所以如果您不立即掌握它,请不要担心。

于 2018-09-07T17:54:44.230 回答