资讯专栏INFORMATION COLUMN

Elasticsearch 参考指南(Reindex API)

luckyw / 2182人阅读

摘要:重新索引要求为源索引中的所有文档启用。重新索引不会尝试设置目标索引,它不会复制源索引的设置,你应该在运行操作之前设置目标索引,包括设置映射碎片数副本等。

Reindex API
重新索引要求为源索引中的所有文档启用_source
重新索引不会尝试设置目标索引,它不会复制源索引的设置,你应该在运行_reindex操作之前设置目标索引,包括设置映射、碎片数、副本等。

_reindex的最基本形式只是将文档从一个索引复制到另一个索引,这会将twitter索引中的文档复制到new_twitter索引中:

POST _reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

这将返回如下内容:

{
  "took" : 147,
  "timed_out": false,
  "created": 120,
  "updated": 0,
  "deleted": 0,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "total": 120,
  "failures" : [ ]
}

就像_update_by_query一样,_reindex获取源索引的快照,但其目标必须是不同的索引,因此版本冲突不太可能,dest元素可以像索引API一样配置,以控制乐观并发控制。只是省略version_type(如上所述)或将其设置为internal将导致Elasticsearch盲目地将文档转储到目标中,覆盖任何碰巧具有相同类型和id的文档:

POST _reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter",
    "version_type": "internal"
  }
}

version_type设置为external将导致Elasticsearch保留源中的version,创建缺少的任何文档,并更新目标索引中具有旧版本的文档而不是源索引中的任何文档:

POST _reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter",
    "version_type": "external"
  }
}

设置op_typecreate将导致_reindex仅在目标索引中创建缺少的文档,所有现有文档都会导致版本冲突:

POST _reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter",
    "op_type": "create"
  }
}

默认情况下,版本冲突会中止_reindex进程,但你可以在请求体中设置"conflicts": "proceed"即可计算:

POST _reindex
{
  "conflicts": "proceed",
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter",
    "op_type": "create"
  }
}

你可以通过向source添加类型或添加查询来限制文档,这个只会将kimchy写的推文复制到new_twitter中:

POST _reindex
{
  "source": {
    "index": "twitter",
    "type": "_doc",
    "query": {
      "term": {
        "user": "kimchy"
      }
    }
  },
  "dest": {
    "index": "new_twitter"
  }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34354.html

相关文章

  • Elasticsearch 参考指南(升级前重新索引)

    摘要:要升级包含在中创建的索引的集群,必须在升级到之前重新索引或删除它们。将和重置为旧索引中使用的值。等待索引状态变为。在单个更新别名请求中删除旧索引。当重新索引作业完成时,将和设置为所需的值默认设置是和。 升级前重新索引 Elasticsearch可以读取上一个主要版本中创建的索引,旧的索引必须重新索引或删除。Elasticsearch 6.x可以使用Elasticsearch 5.x中创...

    546669204 评论0 收藏0
  • Elasticsearch 参考指南(目录)

    摘要:为了防止用户覆盖中指定的索引,将此设置添加到文件中默认值为,但当设置为时,将拒绝在请求体中指定的显式索引的请求。所有都是单索引,参数接受单个索引名,或指向单个索引的别名。查询子句的行为取决于它们是用于查询上下文还是过滤器上下文。 Elasticsearch 参考指南 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它允许你快速,近实时地存储,搜索和分析大量数据,它通...

    liaosilzu2007 评论0 收藏0
  • Elasticsearch 参考指南(安装)

    摘要:至少需要,特别是在撰写本文时,建议你使用版本,安装因平台而异,因此我们不会在此处详细介绍。对于每个版本,你可以选择或存档,或包或安装包。使用安装示例为了简单起见,我们使用文件。 安装 你可以通过在Elastic Cloud上使用我们托管的Elasticsearch Service完全跳过安装,Elastic Cloud可在AWS和GCP上使用,你可以免费试用托管服务。 Elastics...

    whlong 评论0 收藏0
  • 从 10 秒到 2 秒!ElasticSearch 性能调优

    摘要:对于分片数的大小,业界一致认为分片数的多少与内存挂钩,认为堆内存对应个分片,而一个分片的大小不要超过,这样的配置有助于集群的健康。 大家好,我是皮蛋二哥。 ELK是 ElasticSearch、Logstash、Kibana 三门技术的简称。如今 ELK 技术栈在互联网行业数据开发领域使用率越来越高,做过数据收集、数据开发、数据存储的同学相信对这个简称并不陌生,而ElasticSear...

    makeFoxPlay 评论0 收藏0
  • ElasticSearch索引跨集群迁移

    ElasticSearch索引跨集群迁移 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    不知名网友 评论0 收藏1747

发表评论

0条评论

luckyw

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<