如果我在文档中添加新的字符串字段,则将自动为其创建映射,这里是可以的字符串:
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"
}
}
}
}
问题是-将这个字段添加为整数还是将其转换为字符串?有什么方法可以将其报告为错误?
最佳答案
它将数字2转换为字符串“2”。只有在没有适当的类型转换器或无法进行转换时(例如,将大整数添加到整数字段中),它才会抛出异常。
关于elasticsearch - 添加具有与映射中指定值不同类型的值的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797134/