我们知道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
相关推荐
Elasticsearch reindex 修改索引定义、设置、备份索引数据、跨集群数据迁移,reindex使用介绍
3. 数据恢复:在执行了索引重建、快照恢复或通过其他方式恢复丢失的数据时,也需要进行索引恢复。 二、索引恢复的流程 1. 发现阶段:Elasticsearch的主节点会检测到需要恢复的分片,并分配一个恢复任务给一个合适...
Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...
另外索引创建之后,数据库数据如有改动,索引无法联动修改,ElasticSearch没有相关功能,我们只能根据修改频率重建索引,基本上没有实时性可言。 db-river-es正是为了解决这些问题而生。 项目介绍 名称:es-...
ElasticView是一款专为Elasticsearch设计的web可视化监控和管理工具,主要目的是提供一个直观且易用的界面,帮助用户便捷地查看和管理Elasticsearch集群的状态和索引。这款工具采用高性能的编程语言Go(Golang)进行...
Elasticsearch索引旋转器 一个使您能够安全地轮转索引而无需停机的最终用户的库。 我为什么要用这个? 在许多情况下,Elasticsearch用作临时数据存储,用于获取结构化或关系数据并使其快速搜索该数据。 通常,这是...
此外,根据业务需求的变化,可能还需要进行索引重建、优化或扩展集群。 综上所述,Elasticsearch-JDBC插件是连接MySQL和Elasticsearch的重要桥梁,它使得大数据的搜索和分析变得更为便捷和高效。通过定制的批处理...
- 使用`bin/elasticsearch-index.sh`或`bin/elasticsearch-reindex.sh`脚本进行数据导入和索引重建。 - 利用Elasticsearch的RESTful API进行数据操作,例如`PUT`、`GET`、`DELETE`等请求。 6. **监控与日志**: ...
Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful服务的方式提供快速、高可用、可扩展的数据搜索和分析能力。这个"elasticsearch-7.4.0-win64.rar"压缩包包含了Elasticsearch 7.4.0版本的Windows 64位...
- 定期执行索引重建和优化,以更新分析器设置并整理碎片。 - 监控磁盘空间,避免空间不足导致的问题。 - 使用HTTPS进行通信,确保数据传输的安全性。 以上就是关于“最新版windows elasticsearch-8.1.1-windows-...
10. **优化与维护**:包括索引重建、热温冷数据分离、Shard路由等策略,帮助用户优化集群性能和资源利用率。 在使用Elasticsearch 2.2.1时,开发者和管理员需要注意合理的集群配置、定期的健康检查以及适时的数据...
3. **索引管理**:查看索引元数据,包括分片分布、文档计数、存储大小等,还可以执行索引重建、优化等操作。 4. **文档查看与编辑**:可以浏览和编辑单个文档内容,支持 JSON 格式查看与修改。 5. **搜索与分析**:...
此外,还可以直接通过界面进行索引重建和优化操作。 3. **文档操作**:支持查看和编辑单个文档,这对于调试和数据处理非常有帮助。用户可以直接在界面上输入JSON格式的数据,实时查看修改结果。 4. **搜索与分析**...
Elasticsearch Head是一款基于Web的Elasticsearch管理界面工具,主要设计用于可视化Elasticsearch集群的状态、节点信息、索引管理和搜索操作。标题中的"elasticsearch-head-5.0.0.tar.gz"表明这是一个针对Elastic...
Elasticsearch-Head 是一款基于 Google Chrome 浏览器的插件,专为 Elasticsearch (ES) 设计,它提供了一个直观的用户界面,允许用户直接在浏览器中管理和操作 ES 集群。这款插件对于 ES 的日常管理和调试工作非常...
这款开源工具极大地简化了对Elasticsearch的监控、索引管理和数据查询等任务,尤其适合开发和调试过程中使用。 **1. Elasticsearch简介** Elasticsearch是一种实时分布式搜索和分析引擎,广泛应用于日志分析、信息...
9. **维护与优化**: 定期进行索引重建、碎片平衡、监控资源使用情况是Elasticsearch运维的重要任务。此外,了解如何调整Elasticsearch的索引设置、缓存策略、刷新间隔等,可以显著提升性能。 总之,这个资源包提供...
- **重建索引**:当集群服务器数量发生变化后,可能会出现索引断裂的情况,导致 Elasticsearch 状态显示为 red。 - **删除红色索引**:可以通过以下几种方式删除红色索引: - **HTTP 请求**:发送 DELETE 请求到 `...