Elasticsearch可以提供映射建议吗?

时间:2014-09-21 03:24:18

标签: lucene elasticsearch

使用Elasticsearch我在我的索引中添加了一个名为" pets"的文档,如下所示:

{
    "name" : "Piper",
    "type" : "dog"
}

然后我添加了第二个文件:

{
    "name" : "Max",
    "type" : "dog",
    "breed": "Scottish Terrier"
}

现在,我明白了我的宠物" index最初是根据我的第一个文档创建的(除非我在某个时刻定义了一个映射)。但是,我很想知道ES是否可以建议基于现有数据的映射(如MySQL'建议表结构")或者可能自动更新映射。

1 个答案:

答案 0 :(得分:2)

是的,ElasticSearch会自动更新映射。

有时,ElasticSearch文档中的语言听起来就像设置了映射一样,无法更改。这仅适用于现有字段。任何其他字段都将自动分配一个类型并添加到映射中。

请记住,您始终可以使用get mapping API检查索引的映射: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-get-mapping.html

例如,使用上面的示例,在您的第一个“宠物”文档之后,映射为:

{
   "my_index": {
      "mappings": {
         "pet": {
            "properties": {
               "name": {
                  "type": "string"
               },
               "type": {
                  "type": "string"
               }
            }
         }
      }
   }
}

在第二个“宠物”文档之后,您的映射是:

{
   "my_index": {
      "mappings": {
         "pet": {
            "properties": {
               "breed": {
                  "type": "string"
               },
               "name": {
                  "type": "string"
               },
               "type": {
                  "type": "string"
               }
            }
         }
      }
   }
}

我不熟悉MySQL的建议表结构,所以我不能评论......

相关问题