在线上遇到一个问题, 爬虫数据取的发布时间是时间戳,需要转换日期, 但是有些数据是脏数据, 转换成日期可能是这个样子"001-10-1"一看就不符合日期格式, 但是在写入es数据是会报出错误
failed to parse field [approval_time] of type [date]
没办法 只能将这个字段类型改一下修改的mapping 将 approval_time 改为text
{
"mappings": {
"important_invest": {
"properties": {
"approval_time": {
"type": "text"
}
}
}
}
}
以为这样就能解决了, 在kibana中也是可以访问到, 但是在java中出现了问题, 抛出错误:
Fielddata is disabled on text fields by default. Set fielddata=true on [approval_time] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.
默认情况下,文本字段禁用Fielddata。在[approval_time]上设置fielddata=true,以便通过反转反向索引在内存中加载fielddata。注意,这可能会占用大量内存。或者使用关键字字段。
好吧 这个问题需要加上 fielddata=true 万事大吉平台数据终于显示
{
"mappings": {
"important_invest": {
"properties": {
"approval_time": {
"type": "text",
"fielddata": true
}
}
}
}
}
搜到的资料但是没有尝试:
elasticsearch默认会自动识别date类型,如果想关闭该功能,修改mapping的设置'date_detection' => false即可 。