gpt4 book ai didi

elasticsearch - 在 elasticsearch 上复制文档

转载 作者:行者123 更新时间:2023-12-04 06:01:21 26 4
gpt4 key购买 nike

我需要使用 kibana 控制台在我的 Elasticsearch 索引(在同一索引中)克隆文档的内容。我需要文档的 _source 中的字段完全相同(当然,副本会有另一个 id)。我试图:

  • 获取文档
  • 创建一个新的文档空实例
  • 通过以下方式更新新文档
    手动复制 (1) 上结果的属性:

  • POST /blog/post/VAv2FWoBKgnBpki61WiD/_update {    "doc" : {
    "content" : "..." ...


    但问题是该字段包含 veeeery long 属性。有时我会遇到错误,因为当我从 Kibana 界面手动复制字符串时,它们似乎没有被转义。

    我在文档中进行了搜索,但找不到复制文档的查询,我认为这是一个很常见的想法......

    有什么线索吗?

    最佳答案

    利用 Reindex API .这是你可以做的。

    步骤总结:

  • 创建一个 destination_index (假的)。确保映射与 source_index 的映射完全相同
  • 使用 Reindex API , 重新索引 那个来自 source_index 的特定文件至 desitnation_index .在这个操作中,更新_id(我已经提到了脚本)
  • desitnation_index 重新索引此文档至 source_index

  • 重新索引查询

    步骤 1:将文档从 source_index 复制到 destination_index。 (带脚本)
    POST _reindex
    {
    "source": {
    "index": "source_index",
    "query": {
    "match": {
    "_id": "1"
    }
    }
    },
    "dest": {
    "index": "destination_index"
    },
    "script": {
    "inline": "ctx._id=2",
    "lang": "painless"
    }
    }

    请注意我是如何添加 script在上面的查询中,会改变 _id (_id is set as 2)的文件。除了 _id 之外,destination_index 的所有字段的值都与源的完全相同。 field 。

    第 2 步:将该文档从 destination_index 复制到 source_index
    POST _reindex
    {
    "source": {
    "index": "destination_index",
    "query": {
    "match": {
    "_id": "2"
    }
    }
    },
    "dest": {
    "index": "source_index"
    }
    }

    现在搜索 source_index ,它将有两个不同的文档 _ids (_id=1 and _id=2)具有完全相同的内容。

    希望这可以帮助!

    关于elasticsearch - 在 elasticsearch 上复制文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664715/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com