【发布时间】:2018-03-13 01:44:05
【问题描述】:
问题:能否使用 Elasticsearch _reindex API 设置/重置通过它复制的字段的“字段数据类型”?
这个问题来自于查看 Elastics docs for reindex:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/docs-reindex.html
那些文档显示_reindex API 可以在复制内容时对其进行修改。他们给出了更改字段名称的示例:
POST _reindex
{
"source": {
"index": "from-index"
},
"dest": {
"index":"new-index"
},
"script": {
"source": "ctx._source.New-field-name = ctx._source.remove(\"field-to-change-name-of\")"
}
}
script 子句将导致“new-index”有一个名为 New-field-name 的字段,而不是来自“from-index”的名为 field-to-change-name-of 的字段
文档暗示“脚本”功能具有很大的灵活性,但我不清楚这是否包括投影数据类型(例如引用数据以将其转换为字符串/文本/关键字,和/或将事物视为文字以尝试将字符串数据转换为非字符串(显然与危险作斗争)
如果在_reindex 中设置数据类型是可能的,我不假设它会是有效的和/或没有(也许是苛刻的)限制 - 我只是想更好地理解_reindex 功能的限制(并弄清楚我是否可以在一次交互中强制使用数据类型,而不是在执行重新索引命令之前将映射设置为新索引)
(P.S. 我碰巧正在研究 Elasticsearch 6.2,但我认为我的问题适用于所有具有 _reindex api 的版本(听起来像 2.3.0 and greater))
【问题讨论】:
标签: elasticsearch reindex elasticsearch-6