elasticsearch重建索引

news/2024/7/4 13:07:38

1、重建索引

 

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

 

批量查询的时候,建议采用scroll api,并且采用多线程并发的方式来reindex数据,每次scoll就查询指定日期的一段数据,交给一个线程即可

 

1.1如果说旧索引的名字,是old_index,新索引的名字是new_index,终端java应用,已经在使用old_index在操作了,难道还要去停止java应用,修改使用的indexnew_index,才重新启动java应用吗?这个过程中,就会导致java应用停机,可用性降低

 

java应用一个别名,这个别名是指向旧索引的,java应用先用着,java应用先用goods_index alias来操作,此时实际指向的是旧的my_index

 

PUT /my_index/_alias/goods_index

 

1.2新建一个index,调整其字段的类型

 

1.3使用scroll api将数据批量查询出来

 

GET /my_index/_search?scroll=1m

{

    "query": {

        "match_all": {}

    },

    "sort": ["_doc"],

    "size":  1

}

 

1.4采用bulk apiscoll查出来的一批数据,批量写入新索引

 

POST /_bulk

{ "index":  { "_index": "my_index_new", "_type": "my_type", "_id": "2" }}

{ "title":    "2017-01-02" }

 

反复循环,查询一批又一批的数据出来,采取bulk api将每一批数据批量写入新索引

 

1.5goods_index alias切换到my_index_new上去,java应用会直接通过index别名使用新的索引中的数据,java应用程序不需要停机,零提交,高可用

 

POST /_aliases

{

    "actions": [

        { "remove": { "index": "my_index", "alias": "goods_index" }},

        { "add":    { "index": "my_index_new", "alias": "goods_index" }}

    ]

}

 

12)直接通过goods_index别名来查询,是否ok

 

GET /goods_index/my_type/_search

 

2、基于aliasclient透明切换index

转载于:https://www.cnblogs.com/kesimin/p/9559975.html


http://www.niftyadmin.cn/n/2205354.html

相关文章

WPF自定义控件 使用阿里巴巴图标

原文:WPF自定义控件 使用阿里巴巴图标上一篇介绍了 WPF自定义控件 按钮 的初步使用,在进一步介绍WPF自定义控件 按钮之前,先介绍一下如何在WPF项目中使用阿里巴巴图标,方便以后做示例。 1.还是在上一篇项目基础上,在WPF自定义控件…

一个可暂停的飘窗

<!DOCTYPE HTML> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>飘窗三可暂停</title><style type"text/css">div#roll {width: 200px;height: 200px;back…

php小程序生成二维码

1 <?php2 3 getwxacode();4 5 //生成二维码6 function getwxacode(){7 $url "https://api.weixin.qq.com/wxa/getwxacode?";8 $url . "access_token" . getToken();9 $postdata [ 10 "path"…

uniapp(1)formdata格式转换

Accept: "*/*", "Content-Type": "text/plain; charsetUTF-8",

机房除尘机房常识讲解机房卫士

灰尘可以说是机房的死故&#xff0c;机房的除尘如果不到位&#xff0c;再好的服务器和网络设备都会出现同题。由于目前的服务器和网络设备在运行过程中会产生很多热量&#xff0c;为了将这些热量散发出去通常会采用主动散热的方式排出热量&#xff0c;由于机房的空间狭小&#…

主动调用其他类的成员(普通调用和super方法调用)

要点说明&#xff1a; python的语法中主动调用其他类是一个难点和重点&#xff0c;主要两种方法&#xff0c;下面逐一介绍&#xff1a; 1 &#xff0c; 主动调用其他类的普通方法 class Base(object):def f1(self):print("5个功能") class Foo(object): #注意…

::v-deep

例如vue项目里v-html解析出来的内容含有img标签&#xff0c;且样式改不掉时用这个。::v-deep img {width: 100%;margin: 0 auto;}

SPI驱动icm20608的实验

文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树 在pinctrl节点中添加&#xff1a; /* spi驱动 icm20608 */pinctrl_ecspi3: icm20608 {fsl,pins <MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x10b0 /* CS */ /* 只是一个普通的GPIO */MX6UL_PAD_UART2_RX_DA…