如何使用Python3解决Elasticsearch中的BUG INTEGER映射问题



我必须索引一些数据,其中一行有值:

'c_22': {
'raw': '53095200303310000118800091005',
'integer': 53095200303309998490927497216
},

这是将在Elasticsearch中作为文档进行索引的键值对之一。尽管Python3可以将其作为整数,但在Elasticsearch中对其进行索引会引发一个错误:

'error': {
'caused_by': {
'type': 'illegal_state_exception',
'reason': 'No matching token for number_type [BIG_INTEGER]'
},
'type': 'mapper_parsing_exception',
'reason': 'failed to parse'
},
'_index': '8ca178b8cc4dd678147409af92029685',
'_id': 'b4505cd90c5e6c47c38889c5722ff495',
'status': 400
}

注意:上面发布的值是我对这个错误的根本原因的估计。调试器打印出的完整行在这里

我用以下方法做对了:

if _datatype == "number":
column_parsed_value *= 1.0 #in order to avoid biginteger issue in es.

这是解决重大问题的标准方法;Python会好起来的,但ES不会。

相关内容

  • 没有找到相关文章

最新更新