2016-03-13 155 views
0

在Elasticsearch中,我的一个字段是一个日期,我使用与我的日期匹配的自定义日期格式来定义映射。Elasticsearch映射空字符串

但是,有些情况下,我的日期字段的值只是一个空字符串"LastUpdateDate": ""并导致异常。如何处理日期字段映射中空的 字符串?

Unexpected error: (<class 'elasticsearch.helpers.BulkIndexError'>, BulkIndexError(u'1 document(s) failed to index.', [{u'create': 
{u'status': 400, u'_type': u'songs', u'_id': u'AVNtiXgTC4kaHLfuKAJA', u'error': {u'caused_by': {u'reason': u'Invalid format: ""', 
u'type': u'illegal_argument_exception'}, u'reason': u'failed to parse [LastUpdateDate]', u'type': u'mapper_parsing_exception'}, 
u'_index': u'album-032016'}}]), <traceback object at 0x7fba4395c1b8>) 

回答

2

你应该在LastUpdateDate日期字段使用null而不是 “”。

另一种选择是修改索引级别设置:index.mapping.ignore_malformed:true

试图索引错误的数据类型到字段由 默认情况下抛出一个异常,并拒绝整个文档。 ignore_malformed 参数(如果设置为true)允许忽略异常。 格式错误的字段未编入索引,但文档中的其他字段通常处理为 。

https://www.elastic.co/guide/en/elasticsearch/reference/current/ignore-malformed.html