2014-01-29 169 views
1

对本指标的映射现在看起来像更改elasticsearch映射

"properties" : { 
    "doc" : { 
    "properties" : { 
     "age" : { "type" : "long"}, 
     "name" : { "type" : "string" 
    } 
    } 
}, 

在elasticsearch

{ 
    "name": "Mark", 
    "age": 28 
} 

具有自动映射索引以下文件的最简单的情况,但说那我想允许这个文件应该索引的情况下

{ 
    "name": "Bill", 
    "age": "seven" 
} 

如果我试试这个e映射不会更新,并且由于与age属性的类型存在冲突,因此elasticsearch会引发错误。 有没有办法做到这一点,这样两个文档可以自动索引,从而可以查询?

回答

1

您可以添加新字段并更新映射。但是你不能更新映射。要做到这一点,你需要删除索引,并创建一个新的映射和索引数据。

欲了解更多信息请参考以下链接reference

2

映射的每种类型的定义,所以你可以做什么是对你的指数两类:

  1. 数字
  2. 字母

并根据年龄字段中的值拆分文档。如果您运行查询,则可以查询这两种类型。

+0

@ MeiSign-我该如何去告诉elasticsearch“考虑一切,但日期为字符串”? – erbdex

+0

我从来没有这样做,但我猜如果你创建索引,你可以设置数字检测为false,例如:| http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-对象type.html#_numeric_detection – MeiSign

1

您无法更改现有的映射。您只能在其中添加新的字段。 或者您必须删除旧映射&为该特定索引创建新映射。