什么时候需要重建索引

  • 索引的mappings发生变更
  • 索引的setting发生变更
  • 集群内,集群间,需要做数据迁移

update by query

在现有索引重建

比如需要给一个text新增一个子字段,用english分词器。那么新添加的数据会被索引,之前的数据不会被索引。此时可以用_update_by_query

POST blogs/_update_by_query
{ }

reindex

新建一个索引,然后使用reindex导入原有索引数据

POST  _reindex
{
"source": {
"index": "blogs"
},
"dest": {
"index": "blogs_fix",
"version_type": "internal"
}
}

URI上添加wait_for_completion=false实现异步操作

POST  _reindex?wait_for_completion=false
{
"source": {
"index": "blogs"
},
"dest": {
"index": "blogs_fix",
"version_type": "internal"
}
} #查看进度
GET _tasks?detailed=true&actions=*reindex

什么是alias

alias是别名对意思,对一个索引建立别名

  • 可以帮助运维实现零停机情况下重建索引
  • 可以过滤一些索引的数据
  • 可以指向多个索引(只能查,不能修改新增等操作)
PUT /my_index_name/_alias/alias_name

POST /_aliases
{
"actions": [
{ "add": { "index": "my_index__name_v2", "alias": "alias_name" }}
]
}

如何实现零停机呢更换索引呢

  • 首先保证要重建的索引是有别名的,并且其他业务方是使用这个alias来获取数据的
  • 新建一个索引,将老索引的数据添加到新增的索引上
POST _reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
  • 把老索引的别名删除,再给新增的索引添加老索引的别名
POST /_aliases
{
"actions": [
{ "remove": { "index": "my_index_name_v1", "alias": "alias_name" }},
{ "add": { "index": "my_index__name_v2", "alias": "alias_name" }}
]
}

7.elasticsearch重建索引的更多相关文章

  1. elasticsearch重建索引

    1.重建索引 一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中 批量 ...

  2. ELK学习总结(4-1)elasticsearch更改mapping(不停服务重建索引)

    elasticsearch更改mapping(不停服务重建索引)原文 http://donlianli.iteye.com/blog/1924721Elasticsearch的mapping一旦创建, ...

  3. elasticsearch更改mapping(不停服务重建索引)

    转载地址:http://donlianli.iteye.com/blog/1924721?utm_source=tuicool&utm_medium=referral Elasticsearc ...

  4. elasticsearch更改mapping,不停服务重建索引(转)

    原文:http://donlianli.iteye.com/blog/1924721?utm_source=tuicool&utm_medium=referral Elasticsearch的 ...

  5. Elasticsearch系列---实战零停机重建索引

    前言 我们使用Elasticsearch索引文档时,最理想的情况是文档JSON结构是确定的,数据源源不断地灌进来即可,但实际情况中,没人能够阻拦需求的变更,在项目的某个版本,可能会对原有的文档结构造成 ...

  6. 「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?

    背景 众所周知,Elasticsearch是⼀个实时的分布式搜索引擎,为⽤户提供搜索服务.当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固 ...

  7. 【ElasticSearch】索引重建

    ElasticSearch索引重建 ElasticSearch索引一旦建立,便不可修改索引字段类型(允许增加或者删除该字段) 例如从Integer类型修改为long类型,这是不被允许的,错误信息如下: ...

  8. elasticsearch的索引重建

    我们知道es在字段的mapping建立后就不可再次修改mapping的值.在我们实际的情况下有些时候就是需要修改mapping的值,解决方案就是重新构建索引数据. 方式一 : 使用索引别名,创建另外一 ...

  9. ElasticSearch(三十)基于scoll+bulk+索引别名实现零停机重建索引

    1.为什么要重建索引? 总结,一个type下的mapping中的filed不能被修改,所以如果需要修改,则需要重建索引 2.怎么zero time重建索引? 一个field的设置是不能被修改的,如果要 ...

  10. elasticsearch 基础 —— 索引、更新文档

    索引文档 通过使用 index API ,文档可以被 索引 -- 存储和使文档可被搜索 . 但是首先,我们要确定文档的位置.正如我们刚刚讨论的,一个文档的 _index . _type 和 _id 唯 ...

随机推荐

  1. 开发app软件成本计算参考

    目录 1. 设计成本 2. 前端开发成本 3. 后端开发成本 4. 测试成本 5. 上架试运营成本 app软件开发已成为人们生活中不可或缺的一部分.无论是在娱乐.通讯.信息.健康等方面,都有数不清的a ...

  2. ElasticSearch系列——介绍、安装、插件介绍、安装ElasticSearch插件、安装Kibana、安装中文分词器、倒排索引、索引操作、映射管理

    文章目录 ElasticSearch之介绍 一 Elasticsearch产生背景 1.1 大规模数据如何检索 1.2 传统数据库的应对解决方案 1.3 非关系型数据库解决方案 1.4 内存数据库解决 ...

  3. PPT太大发不出去?教你三个PPT压缩方法,200M的PPT变15M

    相信有很多小伙伴在工作的时候,都会制作不少的PPT,而我们也知道很多PPT在制作完成以后,体积就会变得非常大,在发送给别人的时候总是会受到限制,是有点难搞了. 别担心,今天小编将告诉大家三个简单的方法 ...

  4. docker入门加实战——docker安装并配置阿里云加速

    docker入门加实战--docker安装并配置阿里云加速 为什么要学习docker 在开发和部署项目的过程中,经常会遇到如下问题: 软件安装包名字复杂,不知道去哪里找 安装软件和部署项目步骤复杂,容 ...

  5. linux shell -- sed命令

    什么是sed sed 是 stream editor 的缩写,中文称之为"流编辑器". sed 命令是一个面向行处理的工具,它以"行"为处理单位,针对每一行进行 ...

  6. 基于落点打分的井字棋智能下棋算法(C语言实现)

    本文设计了一种基于落地打分的井字棋下棋算法,能够实现电脑不败,所以如果玩家会玩的话,一般是平局. 算法核心 电脑根据对落子位置的打分,选择分数最高的位置,若不同落点分数相同则随机选择位置(随机选择就不 ...

  7. Frog 3 题解

    Frog 3 题目大意 题意都这么明确了还要这个干什么. 存在 \(n\) 个点,每个点有一个属性 \(h_i\),\(h_i\) 单增,从点 \(i\) 移动到点 \(j(j>i)\) 的代价 ...

  8. JUC并发编程学习笔记(十七)彻底玩转单例模式

    彻底玩转单例模式 单例中最重要的思想------->构造器私有! 恶汉式.懒汉式(DCL懒汉式!) 恶汉式 package single; //饿汉式单例(问题:因为一上来就把对象加载了,所以可 ...

  9. linux开发基于iMX6ULL-uboot编译环境配置

    1.下载半导体官方的uboot和linux内核固件 2.下载uboot 3.下载linux内核(选择5.4版本的分支下载) 下载后如下所示 解压后如下 查看文件夹中的内容 创建一个git仓库然后开始自 ...

  10. (Good topic)哈希表:最长回文串(3.19 leetcode每日打卡)

    给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...