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

pos*_*eid 41 elasticsearch

我想为movies这个外观创建一个映射:

{
   title: "The Artist",
   genres: ["Drama", "Comedy"]
}
Run Code Online (Sandbox Code Playgroud)

ElasticSearch文档中,我看到了这个例子:

"properties" : {
        "message" : {"type" : "string"},
        "tags" : {"type" : "string", "index_name" : "tag"},
        ...
  }
Run Code Online (Sandbox Code Playgroud)

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

 "properties" : {
     "message" : {"type" : "string"},
      "tags" : {"type" : "array"}
  }
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ler 51

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

{
    title: ["The Artist", "Formerly known as Prince" ],
    genres: ["Drama", "Comedy"],
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

"index_name"映射只允许您以复数形式的tag - >标签定义别名.

  • +1作为价格参考,且响应良好= P (2认同)