【HBZ分享】ES中的Reindex重建索引

这篇具有很好参考价值的文章主要介绍了【HBZ分享】ES中的Reindex重建索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Reindex如何实现索引重建?

  1. 滚动索引 + 批量复制

Reindex存在的问题

  1. 如果新的索引没有提前创建好,并指定字段类型,那么重建后的新索引类型极有可能会和旧的索引不一致,因为ES他会推断类型,而推断错误率从实战来说那是相当的高

Reindex能解决的问题

  1. 字段类型设置错了
  2. 旧的索引分片不合理,想重新分
  3. 某批数据存错了,或只想保留具备指定特性或关键字的数据,可以根据条件来重建索引,筛选出符合条件的数据进行重建,
POST _reindex
{
	"source": {
		"index":"remind_test",   // 旧的源索引名称
		"query": {
			"term": {
				"summary": "java"   // 只重建包含java的数据
			}
		}
	},
	"dest":{
		"index": "remind_new"   // 重建后新索引的索引名称
	}
}
  1. 指向要指定的字段,其余字段想删掉,也可以使用重建索引
POST _reindex
{
	"source": {
		"index":"remind_test",   // 旧的源索引名称
		"_source": ["id", "title", "name"]   // 只重建id, title, name字段,其余字段不要了,则重建后的新索引,只会有这3个字段
	},
	"dest":{
		"index": "remind_new"   // 重建后新索引的索引名称
	}
}
  1. 多个索引库合并重建(即有多个索引,想把字段和数据整合到一个大索引中)
    == 注意: 如果多个索引中存在相同的文档id,合并后只会保留最后一个,因为会覆盖掉前面的==
POST _reindex
{
	"source": {
		"index":["remind_test_1", "remind_test_2", "remind_test_3"],   // 旧的多个源索引名称
	},
	"dest":{
		"index": "remind_new"   // 重建后新索引的索引名称
	}
}
  1. 扩展:索引数据冲突如何解决: 使用conflicts参数
abort: 中止操作。如果复制中发生了冲突,即源索引的ID出现相同的,则会终止整个重建操作
proceed: 继续操作,不会更新与源索引ID冲突的文档,可能会导致目标索引中存在冲突的文档,会导致数据不一致,需要进行之后处理
overwrite: 覆盖操作,发生冲突时,直接覆盖,后面的覆盖前面的


POST _reindex
{
	"source": {
		"conflicts": "proceed",
		"index":["remind_test_1", "remind_test_2", "remind_test_3"],   // 旧的多个源索引名称
	},
	"dest":{
		"index": "remind_new"   // 重建后新索引的索引名称
	}
}

重建索引Remindex注意事项

  1. reindex要求所有【源/旧】索引的所有文档启用_source
  2. reindex新的索引一定要指定好mapping, shard(分片), replica(副本)数据, 旧索引的这些配置是不会赋值到新索引的

单索引数据量较大,数据同步速度比较慢时,如何处理

  1. 在真正索引重建之前,最好在测试环境进行测试,防止在生产环境重建失败,导致多次重建消耗性能
  2. 评估好重建后索引大小,硬件配置等可用存储等因素,确保重建后能过够成功
  3. 增加资源,比如CPU, 内存等硬件信息,提高reindex操作效率
  4. 为了避免磁盘IO瓶颈,在进行reindex时,可以通过将源索引和目标索引放在不同的磁盘上,或者使用更快的SSD提升速度
  5. 在reindex时,可以将目标索引的刷新间隔设置改为-1, 从而避免不必要的刷新操作,提高reindex效率
  6. 重点:如果单索引数据量大,在迁移前,将目标索引的副本数设置为0, 以加快同步速度,等到迁移后,再修改回来

文章来源地址https://www.toymoban.com/news/detail-649390.html

到了这里,关于【HBZ分享】ES中的Reindex重建索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

    目录 索引index 定制分词器 Type底层结构及弃用原因 定制 dynamic mapping 定制dynamic mapping template 动态映射模板 零停机重建索引 生产环境应该度别名数据 索引index Put /index Stings 分片 Mapping 映射 Aliases 别名 增加 Put my_index2 {        \\\"settings\\\":{           \\\"number_of_shards\\\":3,      

    2024年02月06日
    浏览(39)
  • 【HBZ分享】ES的评分score机制的原理

    基础评分boost,默认2.2, 逆向文档频率值(IDF):表示该词再文档中(ES中)出现的次数越多,表示越不重要,评分越低 在文档中出现的频率(TF):表示该词在文档中出现的频率,频率越高表示越重要,评分越高 注意: IDF是出现次数越多,则评分越低, 而TF是出现次数越高,

    2024年02月13日
    浏览(35)
  • 【HBZ分享】ES分词器的拆分规则 及 算法

    常见的分词器,如Standard分词器、Simple分词器、Whitespace分词器、IK分词等,还支持自定义分词器(比如一些小国家的语言需要自定义分词器) ES默认就是Standard分词器 标记化 :分词器第一步是将文本拆分成单个标记(tokens), 就是单个的单词或中文词组,这个标记可以是单词,数组

    2024年02月06日
    浏览(40)
  • Elasticsearch使用reindex命令同步跨集群索引数据(跨服务器)

    参考(不需要写协议名称http) 修改新的ES集群的配置,修改config/elasticsearch.yml ,添加上面的配置,修改完之后重新启动服务。 2. 在新的ES集群中执行请求 请求url:_reindex 请求方式:post 请求体 注意点 1.请求需要在新的ES集群中执行 2.如果执行有个别数据报错type类型无法转换,会终

    2024年02月14日
    浏览(51)
  • 【Elasticsearch】小白实战!ES使用Reindex迁移数据

    文章有点长,如果你想认真阅读,建议到我语雀文档上观看,格式友好 - ES 迁移工作 最近有一个需求是需要我负责将服务器A里的 ES 数据迁移到服务器B上,但是由于环境不通,所以就先在公司的测试环境和我本地上进行测试,因为之前没有接触过 ES 数据的迁移,所以上手时

    2024年02月05日
    浏览(38)
  • ES 如何重建索引

            ES索引中,为了效率和存储空间,有些字段可以设定为不被索引,然后某一天又需要改成能索引,此时就需要对ES进行重建索引,操作如下 cd /data/elk/logstash/es-template/ vim event.json 将 mask以及其他需要放开查询的字段的\\\"index\\\": false 去掉(注意需要把上方\\\"type\\\": \\\"keyword\\\",的逗

    2024年02月11日
    浏览(47)
  • elasticsearch升级和索引重建

    es在本公司承载三个部分的业务,站内查询,订单数据统计,elk日志分析。 2020年团队决定对elasticsearch升级。es(elasticsearch缩写,下同)当前版本为1.x,升级到5.x版本。 5.x支持如下新特性: 支持lucene 6.x,磁盘空间少一半,索引时间少一半,查询性能提升25% Java rest client (h

    2023年04月18日
    浏览(40)
  • elasticsearch升级和索引重建。

    es在本公司承载三个部分的业务,站内查询,订单数据统计,elk日志分析。 2020年团队决定对elasticsearch升级。es(elasticsearch缩写,下同)当前版本为1.x,升级到5.x版本。 5.x支持如下新特性: 支持lucene 6.x,磁盘空间少一半,索引时间少一半,查询性能提升25% Java rest client (h

    2023年04月15日
    浏览(42)
  • kibana重建es索引报错request body is required

    业务需要把mysql的数据同步到es,用es来查。公司用于同步mysql和es的组件,在mysql表新增字段时会对同步的es索引新增字段,但新增的字段类型可能不是我们想要的,因为es不支持索引字段类型的修改和删除,这时就需要重建es索引。这里的重建索引简单说就是新建一个字段正确

    2024年02月16日
    浏览(51)
  • (十)ElasticSearch高级使用【别名,重建索引,refresh操作,高亮查询,查询建议】

    在开发中,随着业务需求的迭代,较⽼的业务逻辑就要⾯临更新甚⾄是重构,⽽对于es来说,为了 适应新的业务逻辑,可能就要对原有的索引做⼀些修改,⽐如对某些字段做调整,甚⾄是重建索 引。⽽做这些操作的时候,可能会对业务造成影响,甚⾄是停机调整等问题。由此

    2024年02月02日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包