第一次建表的时候,是直接打包的数据存进去的
es直接根据传入数据确定里各字段的类型(日期类型转为了日期存进去,再次插入的时候是字符串,所以报错)
当再次从别的地方存入数据时,出现字段类型不匹配
报错为:
‘error’: {‘type’: ‘mapper_parsing_exception’, ‘reason’: “failed to parse field [起始日期] of type [date] in document with id ‘PxqwEnkBj49MCEb4LDfv’. Preview of field’s value: ‘2020/11/16’”,
更改:
方法一:
在建表之前先确定各字段的映射类型
在kibana上面,运行以下代码,把所有字段的类型改为字符串类型
PUT textbook03
{
"mappings": {
"dynamic_templates": [
{
"en": {
"match": "*", //将所有类型
"mapping": {
"type": "text", //转为text格式
"fields": {
"raw": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
]
}
}
然后再运行代码
首次存入数据建表
再次插入数据解决问题
GET /textbook02/_mapping // 查看字段类型映射关系
DELETE /textbook02 //删除该表
或者
方法二:
把传入的字典改了,日期字段的格式改为日期格式存入
new_dict['起始日期'] = datetime.now()
‘起始日期’: datetime.datetime(2021, 4, 27, 17, 54, 47, 618741),
是这个
就可以了
原来是这个 ‘2020/11/16’ !!(字符串)
插入后是这个样子,格式再调一下就可以了 哈哈哈
感谢同事告诉我的,不然肯定要纠结很久!!!!