0

如果我在文档中添加新的字符串字段,则会自动创建它的映射,这里是字符串,可以:

curl -XPOST http://localhost:9200/jakis/typ -d '{"imie": "John"}'

结果:

{
  "ok": true,
  "_index": "jakis",
  "_type": "typ",
  "_id": "GY5AYdaVRH-Vg-XcBQzWYw",
  "_version": 1
}

curl -XGET http://localhost:9200/jakis/_mapping

结果:

{
  "jakis": {
    "typ": {
      "properties": {
        "imie": {
          "type": "string"
        }
      }
    }
  }
}

但是,如果我添加一个与映射中已经存在但类型不同的字段同名(在映射中它是字符串,这里我添加整数),那么 Elasticsearch 会愉快地添加新文档,但整数字段的新映射不会放在类型中映射:

curl -XPOST http://localhost:9200/jakis/typ -d '{"imie": 2}'      

结果:

{
  "ok": true,
  "_index": "jakis",
  "_type": "typ",
  "_id": "zLpMl5_RSTiceFFG31mj6Q",
  "_version": 1
}

curl -XGET http://localhost:9200/jakis/typ/_mapping

结果:

{
  "typ": {
    "properties": {
      "imie": {
        "type": "string"
      }
    }
  }
}

问题是 - 这个字段是作为整数添加还是转换为字符串?有没有办法将其报告为错误?

4

1 回答 1

1

它将数字 2 转换为字符串“2”。唯一会抛出异常的情况是没有适当的类型转换器或无法进行转换(例如将大整数添加到整数字段中)

于 2013-11-05T19:47:59.480 回答