elasticsearch 在elasticsearch上复制文档
我需要使用kibana控制台克隆elasticsearch索引(在同一索引中)中的文档内容。我需要文档的_源中完全相同的字段(当然,副本将有另一个id)。我试图:elasticsearch 在elasticsearch上复制文档,elasticsearch,kibana,elasticsearch,Kibana,我需要使用kibana控制台克隆elasticsearch索引(在同一索引中)中的文档内容。我需要文档的_源中完全相同的字段(当然,副本将有另一个id)。我试图: 获取文档 创建文档的新空实例 通过以下方式更新新文档: 手动复制(1)上结果的属性: 但问题是字段包含每一个很长的属性。有时我会出错,因为当我从Kibana接口手动复制字符串时,字符串似乎没有被替换 我在文档中搜索了一下,但是我找不到一个复制文档的查询,我认为这是一个非常常见的想法 有什么线索吗?利用。这是你能做的 步骤摘要: 创建
- 创建一个
目的地\u索引(虚拟)。确保映射与
源索引的映射完全一致
- 使用,将该特定文档从
重新索引到源索引
。在这个操作中,更新_id(我提到了脚本)设计索引
- 将此文档从
重新索引到设计索引
源索引
POST _reindex
{
"source": {
"index": "source_index",
"query": {
"match": {
"_id": "1"
}
}
},
"dest": {
"index": "destination_index"
},
"script": {
"inline": "ctx._id=2",
"lang": "painless"
}
}
请注意,我如何在上面的查询中添加了一个脚本
,该脚本将更改文档的\u id(\u id设置为2)
。除了\u id
字段外,您的目的地索引将包含与源索引值完全相同的所有字段
步骤2:将该文档从目标索引复制到源索引
POST _reindex
{
"source": {
"index": "destination_index",
"query": {
"match": {
"_id": "2"
}
}
},
"dest": {
"index": "source_index"
}
}
现在搜索源索引
,它将有两个具有不同\u id(\u id=1和\u id=2)的文档
,具有完全相同的内容
希望这有帮助 非常感谢!当然有帮助。我还通过使用logstash脚本找到了另一种选择:)
POST _reindex
{
"source": {
"index": "destination_index",
"query": {
"match": {
"_id": "2"
}
}
},
"dest": {
"index": "source_index"
}
}