【发布时间】:2018-03-14 04:16:50
【问题描述】:
我想重新索引一个索引,在这个过程中我想小写所有字段的值。 有什么办法可以做到这一点。
目前我已经研究了摄取管道,但您必须在其中命名每个需要转换为小写的字段。
{
"lowercase": {
"field": "foo"
}
}
我想要一些可以小写所有字段值而无需提及字段名称的东西。
【问题讨论】:
标签: elasticsearch
我想重新索引一个索引,在这个过程中我想小写所有字段的值。 有什么办法可以做到这一点。
目前我已经研究了摄取管道,但您必须在其中命名每个需要转换为小写的字段。
{
"lowercase": {
"field": "foo"
}
}
我想要一些可以小写所有字段值而无需提及字段名称的东西。
【问题讨论】:
标签: elasticsearch
我建议在调用 Reindex API 时使用脚本。在脚本中,您可以遍历所有字段并将它们的值小写。像这样的东西应该可以工作:
POST _reindex
{
"source": {
"index": "source_index"
},
"dest": {
"index": "target_index"
},
"script": {
"source": "ctx._source.forEach((field, value) -> ctx._source[field] = value?.toLowerCase())}",
"lang": "painless"
}
}
【讨论】: