范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

ElasticSearch7。3学习之生产环境实时重建索引

  1、实时重建索引
  在实际的生产环境中,一个 field  的设置是不能被修改的,如果要修改一个Field  ,那么应该重新按照新的mapping  ,建立一个index  ,然后将数据批量查询出来,重新用bulk api  写入index  中。
  批量查询的时候,建议采用 scroll api  ,并且采用多线程并发的方式来reindex  数据。例如说每次scoll  就查询指定日期的一段数据,交给一个线程即可。
  (1) 一开始,依靠 dynamic mapping  ,插入数据,但是不小心有些数据是2019-09-10  这种日期格式的,所以title  这种field  被自动映射为了date  类型,实际上它应该是string  类型的。
  首先插入以下数据 PUT /my_index/_doc/1 {   "title": "2019-09-10" }  PUT /my_index/_doc/2 {   "title": "2019-09-11" }
  (2)当后期向索引中加入 string  类型的title  值的时候,就会报错PUT /my_index/_doc/3 {   "title": "my first article" }
  报错 {   "error": {     "root_cause": [       {         "type": "mapper_parsing_exception",         "reason": "failed to parse field [title] of type [date] in document with id "3". Preview of field"s value: "my first article""       }     ],     "type": "mapper_parsing_exception",     "reason": "failed to parse field [title] of type [date] in document with id "3". Preview of field"s value: "my first article"",     "caused_by": {       "type": "illegal_argument_exception",       "reason": "failed to parse date field [my first article] with format [strict_date_optional_time||epoch_millis]",       "caused_by": {         "type": "date_time_parse_exception",         "reason": "Failed to parse with all enclosed parsers"       }     }   },   "status": 400 }
  (3)如果此时想修改 title  的类型,是不可能的PUT /my_index/_mapping {   "properties": {     "title": {       "type": "text"    	}   } }
  报错 {   "error": {     "root_cause": [       {         "type": "illegal_argument_exception",         "reason": "mapper [title] of different type, current_type [date], merged_type [text]"       }     ],     "type": "illegal_argument_exception",     "reason": "mapper [title] of different type, current_type [date], merged_type [text]"   },   "status": 400 }
  (4)此时,唯一的办法,就是进行 reindex  ,也就是说,重新建立一个索引,将旧索引的数据查询出来,再导入新索引。
  (5)如果说旧索引的名字,是 old_index  ,新索引的名字是new_index  ,终端java  应用,已经在使用old_index  在操作了,难道还要去停止java  应用,修改使用的index  为new_index  ,才重新启动java  应用吗?这个过程中,就会导致java  应用停机,可用性降低。
  (6)所以说,给 java  应用一个别名,这个别名是指向旧索引的,java  应用先用着,java  应用先用prod_index  来操作,此时实际指向的是旧的my_index  PUT /my_index/_alias/prod_index
  (7)查看别名,会发现 my_index  已经存在一个别名prod_index  了。GET my_index/_alias
  (8)新建一个 index  ,调整其title  的类型为string  PUT /my_index_new {   "mappings": {     "properties": {       "title": {         "type": "text"       }     }   } }
  (9)使用 scroll api  将数据批量查询出来GET /my_index/_search?scroll=1m {   "query": {     "match_all": {}   },   "size": 1 }
  返回 {   "_scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAARUMWQWx5bzRmTW9TeUNpNmVvN0E2dF9YQQ==",   "took" : 4,   "timed_out" : false,   "_shards" : {     "total" : 1,     "successful" : 1,     "skipped" : 0,     "failed" : 0   },   "hits" : {     "total" : {       "value" : 2,       "relation" : "eq"     },     "max_score" : 1.0,     "hits" : [       {         "_index" : "my_index",         "_type" : "_doc",         "_id" : "1",         "_score" : 1.0,         "_source" : {           "title" : "2019-09-10"         }       }     ]   } }
  (9)采用 bulk api  将scoll  查出来的一批数据,批量写入新索引POST /_bulk {"index":{"_index":"my_index_new","_id":"1"}} {"title":"2019-09-10"}
  (10)反复循环8~9,查询一批又一批的数据出来,采取 bulk api  将每一批数据批量写入新索引
  (11)将 my_index  索引的别名prod_index  切换到my_index_new  上去,java应用会直接通过index别名使用新的索引中的数据,java应用程序不需要停机,零提交,高可用POST /_aliases {   "actions": [     {       "remove": {         "index": "my_index",         "alias": "prod_index"       }     },     {       "add": {         "index": "my_index_new",         "alias": "prod_index"       }     }   ] }
  (12)直接通过 prod_index  别名来查询,是否okGET prod_index/_search
  可以看到能够查询到新索引 my_index_new  的数据了{   "took" : 1117,   "timed_out" : false,   "_shards" : {     "total" : 1,     "successful" : 1,     "skipped" : 0,     "failed" : 0   },   "hits" : {     "total" : {       "value" : 1,       "relation" : "eq"     },     "max_score" : 1.0,     "hits" : [       {         "_index" : "my_index_new",         "_type" : "_doc",         "_id" : "1",         "_score" : 1.0,         "_source" : {           "title" : "2019-09-10"         }       }     ]   } } 2、总结:
  基于 alias  对client  透明切换index  PUT /my_index_v1/_alias/my_index
  client  对my_index  进行操作
  reindex  操作,完成之后,切换v1到v2POST /_aliases {     "actions": [         { "remove": { "index": "my_index_v1", "alias": "my_index" }},         { "add":    { "index": "my_index_v2", "alias": "my_index" }}     ] }
  原文地址:https://www.cnblogs.com/xiaoyh/p/16028045.html

vivoX80影像官宣全球首发全新大底传感器vivo将于本月25日发布其X80系列新机,今天官方继续为这款新品带来预热,公布了主摄镜头方面的信息。vivo官方微博发文称X系列是我们一直以来引以为傲的专业影像旗舰,这次的viv阿里大佬编写的java漫画书用漫画形式阐述java核心,PDF获取一个资深码农,直言不讳地说编程学习是比较枯燥的,java漫画书借助于漫画展示的形式,并使用Java编程语言讲解了面向对象编程中的各种概念和理论知识,比如面向对象的简介由类创建一个对被岳云鹏种草,喵喵机家用学习打印机F1成功出圈每个家长都非常重视孩子的学习,为了提升他们的学习成绩,要么是买来一大堆的教辅材料,要么直接花钱请私教老师指导,可能这样的助力途径会让孩子学习取得一定的进步,但是这种被动学习方式往往代步接娃哪家强?微型纯电如何选?随着新能源汽车的起势,自主造车品牌抓住增长机会,不管是传统燃油车企转向纯电领域还是新兴品牌都是动作连连,尤其在微型纯电代步车这种车型上,很多品牌都有涉足,这与宏观MINIEV的大获2499起!号称最完美的天玑8100手机发布红米K50危险了?正如小智所说,今年最抢眼的处理器不是高通骁龙8Gen1,也不是口碑比其更好的联发科天玑9000,反而是发哥定位稍低的天玑8100。它之所以抢眼是因为做到了类似当年高通神U骁龙835谷歌PlayStore新政5月11日起开始扼杀第三方通话录音应用IT之家4月21日消息,很多品牌的安卓手机都支持通话录音功能,该功能也集成在谷歌Pixel手机的电话应用中。但由于部分地区法律的原因,并不是所有手机都支持这个功能,不过即使手机没有中国打造超级大桥,实现5大科技世界首创,全桥通5G引老外羡慕中国这个基建狂魔,打造一座桥,竟然直接实现了5大技术首创,不得不说,中国造一个工程,就是实现一把技术攻关,如今中国手中所掌握的,有关基建的技术,那是数都数不清的。而这个一举创下5大雷克萨斯首款纯电SUVRZ的黑科技也是传统车企的反击!历经漫长等待后,雷克萨斯终于发布旗下首款新能源车型RZ。作为一款新能源SUV,该车将与丰田bZ4x和斯巴鲁Solterra共享eTNGA平台,而eTNGA未来将会与普通TNGA架构高澜股份2022年第一季度净利828。98万同比增长80。27新能源汽车电子制造产品收入增加挖贝网4月21日,高澜股份(300499)发布2022年第一季度报告,公告显示,本报告期内营业收入423,334,397。68元,同比增长47。35归属于上市公司股东的净利润8,2集打印和辅导功能于一体,岳云鹏推荐的喵喵机F1真的太实用啦辅导孩子学习是大部分家长头疼的一个问题,就连明星也会被这个问题困扰,就比如相声演员岳云鹏就曾发微博吐槽过自己女儿,表示五分钟了,七加九真的很难吗?。这个问题对于成年人来说的确太简单是鸡肋还是未来,中国的5G之路何去何从?前段时间,一则运营商通过深度休眠降低5G基站能耗的新闻引发了众多吃瓜群众的诧异,我付了5G的套餐费,运营商凭什么以省电的名义帮我降成4G,许多民众纷纷在社交媒体上发出质疑。民众质疑
数据可视化BI工具排名,真相?当人们有数据可视化需求的时候,放眼以前,就是拖朋友关系打听谁谁某某在做数据可视化之类的云云,然后就是相关公司销售过来洽谈,因为信息的不透明,只要在可承受范围之内,基本就会成交,物以苹果iPhone带坏了风气,又一手机厂商不送充电器了,网友没影响前两天,谷歌发布了一款手机Pixel5A。我们知道,谷歌A系列机型定位入门,Pixel5A是一款性价比机型。该机内置高通骁龙765G移动平台,正面是一块6。34英寸挖孔屏,OLED挤爆牙膏管?详解英特尔第12代酷睿AlderLake中的新特性在近日举办的2021年英特尔架构日活动中,英特尔对外宣布了众多技术创新,包括两个全新设计的x86内核微架构,并推出代号为AlderLake的性能混合架构处理器,以及面向数据中心领域HarmonyOS2。1即将发布最新消息称,骁龙888版P50的HarmonyOS系统也会升级,首发HarmonyOS2。1,不过具体升级了什么内容还没有消息。6月2日的发布会上,华为正式推出了HarmonyOS亚马逊再次清扫,破产裁员,真是哀鸿遍野自从过完年,跨境电商的工作群体,兴高采烈地步入工作。没想到今年等待他们的竟然是史无前例的大规模封店潮!这次封杀和以往有什么区别呢?以前封号都是在旺季前夕,比如黑色星期五,开学季这些京东,利用活动噱头,提高商品价格再优惠作为京东的忠实用户,我本来不想对京东造成伤害,但是,它却一直在欺骗消费者,我不愿意看着京东越走越远,所以,晒一下!真心希望京东越来越好,毕竟以人为镜可以明得失!每年的618818或ZEEKR001所搭载的新三电到底有何优势?导语众所周知,对纯电动汽车而言,电池电机电控是最为核心的技术系统,直接影响车辆的性能表现,也是消费者购买纯电动汽车时候,考虑最多的技术因素之一。同时任何新款纯电动汽车,想要在现在市阿里迎来新挑战,俞永福担任CEO,这次把枪口对准了美团女员工受侵害事件的持续发酵,让阿里巴巴已经多次登上风口浪尖。如今,此事件中涉事的阿里员工已经引咎辞职,阿里巴巴的本地生活业务也迎来了又一轮换帅。俞永福担任CEO根据晚点LatePo专为视障用户打造支付宝上线划一划密码8月23日,蚂蚁集团消费者权益保障专项蚂蚁315表示,为了不断方便视障用户使用,支付宝上线划一划密码,有效避免以往密码被朗读或输入慢等问题,安全性和便利性更高,目前已试点接入支付宝面试经验丨百度测试开发工程师面试题集(含面试题答案),来瞧瞧前言IT互联网的飞速发展,很多人选择从计算机方面开发着手,在整个计算机行业的,不同岗位所需要具备的能力是不同的。这次分享的是我一个朋友百度面试测开的面试题。面试时间21年4月。测试手机口碑榜前十名华为Mate40无缘,荣耀手机登顶进入5G时代之后,手机厂商开始感到危机感,深怕和当年2G4G时代一样,被突如其来的5G洗牌,诺基亚HTC就是前车之鉴。因此,我们看到小米和OV等品牌,不断发布新款5G手机,以争取更