【发布时间】:2016-08-17 06:51:12
【问题描述】:
我正在尝试重命名弹性搜索中的文件名,下面是示例数据,其中我需要更改部分/所有字段名以及嵌套对象
{
"took": 63,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1000,
"max_score": 1,
"hits": [
{
"_index": "course",
"_type": "product",
"_id": "14",
"_score": 1,
"_source": {
"quantity": 25,
"price": "137.62",
"name": "Veal - Leg",
"description": "Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis. Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.",
"categories": [
{
"name": "Sport"
},
{
"name": "Clothing"
}
],
"tagNames": [
"phones",
"elasticsearch"
],
"status": "inactive"
}
}
}
现在我想用新的字段名称重命名上述所有现有字段我尝试了这个解决方案
POST /_reindex
{
"source": {
"index": "course"
},
"dest": {
"index": "course_new"
},
"script": {
"inline": "ctx._source.tags = ctx._source.remove(\"tagNames\")"
} }
但是这个解决方案只会重命名/修改一个字段(甚至不是嵌套字段),我如何在弹性搜索索引中重命名多个/所有上述字段。
感谢您的快速响应,感谢您的快速响应
【问题讨论】:
-
请解释/突出显示您要修改的其他字段。
-
我想把 'descriptions' 改成 'desc',把 'price' 改成 'cost' 和 'categories.name' 改成 'cat.NAMES' -----像这样
标签: elasticsearch lucene