`

elasticsearch的索引重建

阅读更多

     我们知道es在字段的mapping建立后就不可再次修改mapping的值。在我们实际的情况下有些时候就是需要修改mapping的值,解决方案就是重新构建索引数据。

方式一

    使用索引别名,创建另外一个索引、使用scroll滚屏搜索插入数据、等等,(网上有很多这样的例子,略

方式二:(参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html)

    使用es的 _reindex api进行解决。

    注意: _reindex获取的索引的快照的数据,也就是说在重建索引的过程中可能会丢失部分数据

    索引重建的演示步骤:

    1、创建oldindex

    2、给索引创建别名

    3、想oldindex中插入9条数据

    4、创建新的索引newindex

    5、重建索引

    6、实现不重启服务索引的切换

------------------------------------------------------------------------------------------------------------------------------

1、创建oldindex

curl -XPUT "http://192.168.99.1:9200/oldindex" -d'
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "product" : {
      "properties": {
        "name" : {
          "type": "text"
        },
        "price" : {
          "type": "double"
        }
      }
    }
  }
}'

2、给索引创建别名

curl -XPUT "http://192.168.99.1:9200/oldindex/_alias/alias_oldindex"

3、想oldindex中插入9条数据

curl -XPOST "http://192.168.99.1:9200/alias_oldindex/product/_bulk" -d'
{"create":{"_id":1}}
{"name":"name 01","price":1}
{"create":{"_id":2}}
{"name":"name 02","price":2}
{"create":{"_id":3}}
{"name":"name 03","price":3}
{"create":{"_id":4}}
{"name":"name 04","price":4}
{"create":{"_id":5}}
{"name":"name 05","price":5}
{"create":{"_id":6}}
{"name":"name 06","price":6}
{"create":{"_id":7}}
{"name":"name 07","price":7}
{"create":{"_id":8}}
{"name":"name 08","price":8}
{"create":{"_id":9}}
{"name":"name 09","price":9}
'

4、创建新的索引newindex

curl -XPUT "http://192.168.99.1:9200/newindex" -d'
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "product" : {
      "properties": {
        "name" : {
          "type": "keyword"
        },
        "price" : {
          "type": "double"
        }
      }
    }
  }
}'

5、重建索引 
    _source中的意思是只将旧索引的price字段的数据插入到新索引中。

6、实现不重启服务索引的切换

curl -XPOST "http://192.168.99.1:9200/_aliases" -d'
{
  "actions": [
    {
      "remove": {
        "index": "oldindex",
        "alias": "alias_oldindex"
      }
    },
    {
      "add": {
        "index": "newindex",
        "alias": "alias_oldindex"
      }
    }
  ]
}'

    以上就完成了索引重建的过程,并实现不停止服务就可以应用上新建后的索引。(前提:程序中使用的是索引的别名

    更多复杂的用法,参考网址:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html

  • 大小: 152.3 KB
0
0
分享到:
评论

相关推荐

    ES-重建索引 - 副本.doc

    Elasticsearch reindex 修改索引定义、设置、备份索引数据、跨集群数据迁移,reindex使用介绍

    Elasticsearch索引恢复

    3. 数据恢复:在执行了索引重建、快照恢复或通过其他方式恢复丢失的数据时,也需要进行索引恢复。 二、索引恢复的流程 1. 发现阶段:Elasticsearch的主节点会检测到需要恢复的分片,并分配一个恢复任务给一个合适...

    Elasticsearch数据导出工具

    Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...

    es-index-db:一种从数据库创建Elasticsearch索引的简便方法,并在数据库更新时实时更新索引

     另外索引创建之后,数据库数据如有改动,索引无法联动修改,ElasticSearch没有相关功能,我们只能根据修改频率重建索引,基本上没有实时性可言。  db-river-es正是为了解决这些问题而生。 项目介绍 名称:es-...

    ElasticView 是一款用来监控ElasticSearch状态和操作ElasticSearch索引的web可视化工具

    ElasticView是一款专为Elasticsearch设计的web可视化监控和管理工具,主要目的是提供一个直观且易用的界面,帮助用户便捷地查看和管理Elasticsearch集群的状态和索引。这款工具采用高性能的编程语言Go(Golang)进行...

    elasticsearch-jdbc-2.3.3.0-dist.zip

    此外,根据业务需求的变化,可能还需要进行索引重建、优化或扩展集群。 综上所述,Elasticsearch-JDBC插件是连接MySQL和Elasticsearch的重要桥梁,它使得大数据的搜索和分析变得更为便捷和高效。通过定制的批处理...

    elasticsearch-index-rotator:安全轮换Elasticsearch索引,而无需停机给最终用户

    Elasticsearch索引旋转器 一个使您能够安全地轮转索引而无需停机的最终用户的库。 我为什么要用这个? 在许多情况下,Elasticsearch用作临时数据存储,用于获取结构化或关系数据并使其快速搜索该数据。 通常,这是...

    最新版windows elasticsearch-7.17.1-windows-x86_64.zip

    - 使用`bin/elasticsearch-index.sh`或`bin/elasticsearch-reindex.sh`脚本进行数据导入和索引重建。 - 利用Elasticsearch的RESTful API进行数据操作,例如`PUT`、`GET`、`DELETE`等请求。 6. **监控与日志**: ...

    elasticsearch-7.4.0-win64.rar

    Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful服务的方式提供快速、高可用、可扩展的数据搜索和分析能力。这个"elasticsearch-7.4.0-win64.rar"压缩包包含了Elasticsearch 7.4.0版本的Windows 64位...

    最新版windows elasticsearch-8.1.1-windows-x86_64.zip

    - 定期执行索引重建和优化,以更新分析器设置并整理碎片。 - 监控磁盘空间,避免空间不足导致的问题。 - 使用HTTPS进行通信,确保数据传输的安全性。 以上就是关于“最新版windows elasticsearch-8.1.1-windows-...

    elasticsearch-2.2.1.zip

    10. **优化与维护**:包括索引重建、热温冷数据分离、Shard路由等策略,帮助用户优化集群性能和资源利用率。 在使用Elasticsearch 2.2.1时,开发者和管理员需要注意合理的集群配置、定期的健康检查以及适时的数据...

    elasticsearch-head

    3. **索引管理**:查看索引元数据,包括分片分布、文档计数、存储大小等,还可以执行索引重建、优化等操作。 4. **文档查看与编辑**:可以浏览和编辑单个文档内容,支持 JSON 格式查看与修改。 5. **搜索与分析**:...

    elasticsearch插件

    此外,还可以直接通过界面进行索引重建和优化操作。 3. **文档操作**:支持查看和编辑单个文档,这对于调试和数据处理非常有帮助。用户可以直接在界面上输入JSON格式的数据,实时查看修改结果。 4. **搜索与分析**...

    elasticsearch-head-5.0.0.tar.gz

    Elasticsearch Head是一款基于Web的Elasticsearch管理界面工具,主要设计用于可视化Elasticsearch集群的状态、节点信息、索引管理和搜索操作。标题中的"elasticsearch-head-5.0.0.tar.gz"表明这是一个针对Elastic...

    elasticsearch-head谷歌插件

    Elasticsearch-Head 是一款基于 Google Chrome 浏览器的插件,专为 Elasticsearch (ES) 设计,它提供了一个直观的用户界面,允许用户直接在浏览器中管理和操作 ES 集群。这款插件对于 ES 的日常管理和调试工作非常...

    elasticsearch-head 安装工具资源

    这款开源工具极大地简化了对Elasticsearch的监控、索引管理和数据查询等任务,尤其适合开发和调试过程中使用。 **1. Elasticsearch简介** Elasticsearch是一种实时分布式搜索和分析引擎,广泛应用于日志分析、信息...

    Elasticsearch相关安装包

    9. **维护与优化**: 定期进行索引重建、碎片平衡、监控资源使用情况是Elasticsearch运维的重要任务。此外,了解如何调整Elasticsearch的索引设置、缓存策略、刷新间隔等,可以显著提升性能。 总之,这个资源包提供...

    elasticsearch集群化搭建

    - **重建索引**:当集群服务器数量发生变化后,可能会出现索引断裂的情况,导致 Elasticsearch 状态显示为 red。 - **删除红色索引**:可以通过以下几种方式删除红色索引: - **HTTP 请求**:发送 DELETE 请求到 `...

Global site tag (gtag.js) - Google Analytics