问题:Elasticsearch _reindex
API 能否用于设置/重置通过它复制的字段的“字段数据类型”?
这个问题来自查看 Elastics 文档以进行重新索引: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
,而不是名称field-to-change-name-of
来自“from-index”的字段
该文档暗示“脚本”功能中有很大的灵活性,但我不清楚这是否包括投影数据类型(例如引用数据以将其转换为字符串/文本/关键字,和/或处理事物作为文字试图将字符串数据转换为非字符串(显然与危险作斗争)
如果在 a 中设置数据类型_reindex
是可能的,我不会假设它会是有效的和/或没有(可能是苛刻的)限制 - 我只是想更好地理解_reindex
功能的限制(并弄清楚我是否可以强制使用数据类型在一次交互中,而不是在我执行重新索引命令之前设置映射没有新索引)
(PS 我碰巧在 Elasticsearch 6.2 上工作,但我认为我的问题适用于所有具有_reindex
api 的版本(听起来像2.3.0 及更高版本))