如何在ES中使用数组映射?

时间:2013-09-19 19:02:57

标签: elasticsearch

我想为movies创建一个如下所示的映射:

{
   title: "The Artist",
   genres: ["Drama", "Comedy"]
}

ElasticSearch documentation我看到了这个例子:

"properties" : {
        "message" : {"type" : "string"},
        "tags" : {"type" : "string", "index_name" : "tag"},
        ...
  }

然而,现在我很困惑..我期望看到的是:

 "properties" : {
     "message" : {"type" : "string"},
      "tags" : {"type" : "array"}
  }

那么,为什么该示例仅提供对另一个索引的引用?我如何定义“标签”索引?或者,我什么时候才能使用该数组映射?

1 个答案:

答案 0 :(得分:50)

因此ElasticSearch不需要指定映射是一个数组。您可以使用方括号将任何映射视为数组:

{
    title: ["The Artist", "Formerly known as Prince" ],
    genres: ["Drama", "Comedy"],
    ...
}

请参阅页面上的最后一句:

  

当然,我们可以将字段命名为tag并一起跳过index_name

“index_name”映射只允许您以复数形式的标签定义别名 - >标签。