繁体   English   中英

如何使用 python 更新/更改 elasticsearch 中索引映射中的现有字段类型?

[英]How to update/change the existing field type in a mapping of an index in elasticsearch using python?

我正在尝试更新现有索引映射中的字段类型,但使用 put_mapping 方法获取 BadRequestError。 相同的方法适用于添加新字段,但不能更新现有字段。 是否有任何其他方法可用于相同的?

在下面的示例中,我正在尝试更改 start_time 的日期格式

es_client.indices.put_mapping(index='test-index',properties=properties)

这是我得到的错误

raise HTTP_EXCEPTIONS.get(meta.status, ApiError)(

elasticsearch.BadRequestError: BadRequestError(400, 'illegal_argument_exception', '[start_time] 的映射器与现有映射器冲突:\n\t无法将参数 [格式] 从 [yyyy-MM-dd HH:mm:ss||epoch_millis] 更新为 [ yyyy-MM-dd HH:mm:ss]')

如果要更改需要使用重新索引 API 的映射,则在创建索引后无法更改映射,有关更多信息,请查看此处的答案: 弹性搜索,无过滤器映射

正如上面在评论中提到的那样,一旦创建索引,您就无法更改映射

您需要删除索引,然后使用正确的设置重新创建它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM