设为首页 收藏本站
查看: 1538|回复: 0

[经验分享] Elasticsearch索引重建(Rebuild)

[复制链接]

尚未签到

发表于 2017-5-20 14:12:58 | 显示全部楼层 |阅读模式
  Elasticsearch索引重建(Rebuild)
索引重建(Rebuild)
         索引创建后,你可以在索引当中添加新的类型,在类型中添加新的字段。但是如果想修改已存在字段的属性(修改分词器、类型等),目前ES是做不到的。如果确实存在类似这样的需求,只能通过重建索引的方式来实现。但想要重建索引,请保证索引_source属性值为true,即存储原始数据。索引重建的过程就是将原来索引数据查询回来入到新建的索引当中去,为了重建过程不影响客户端查询,创建索引时请使用索引别名,例如现在需要将index1进行重建生成index2,index1给客户端提供的别名为index1_alias,完整步骤如下:
1、  创建索引索引index1,使用index1_alias作为别名指定。
 
[html] view plaincopy 



  • curl –XPUT localhost:9200/index1 –d‘{  
  • “aliases”:{  
  •            “index1_alias”:{}  
  •   }  
  • }’  

  


 
2、  根据新配置创建索引index2
例如:
 
[html] view plaincopy 



  • curl–XPUT localhost:9200/index2 –d ‘{  
  • “settings”:{  
  •            “index_number_of_shards”:10  
  • }  
  • }’  

  


 
3、  将旧索引数据导入到新索引中
将索引index1中的数据导入到index2当中,可以将index1原始数据划范围导入到index2中。为了提高查询性能,查询类型选择scan方式。例如:
部分1:
 
[html] view plaincopy 



  •  GET/ old_index / _search ? search_type = scan & scroll = 1m {  
  •    "query": {  
  •         "range": {  
  •             "date": {  
  •                 "gte":"2014-01-01",  
  •                 "lt":"2014-02-01"  
  •             }  
  •         }  
  •    },  
  •    "size": 1000  
  • }  

  


 
部分2:
 
[html] view plaincopy 



  • GET/ old_index / _search ? search_type = scan & scroll = 1m {  
  •    "query": {  
  •         "range": {  
  •             "date": {  
  •                 "gte": "2014-02-01",  
  •                 "lt": "2014-03-01"  
  •             }  
  •         }  
  •    },  
  •    "size": 1000  
  • }  

  


 
使用上述方式查询原始数据,然后调用ES批量bulk接口索引文档。
4、  索引切换
为了保证系统不停机的情况下进行索引切换,通过修改别名的方式进行修改,即删除index1别名index1_alias,给index2增加index1_alias别名,具体如下:
 
[html] view plaincopy 



  • curl –XPUT localhost:9200/_alias ‘{  
  • “action”:[  
  •            “remove:{  
  •                     “index”:”index1”,  
  •                     “alias”:”index1_aias”  
  • }”,  
  •            “add:{  
  •                     “index”:”index2”,  
  •                     “alias”:”index1_aias”  
  • }”  
  •    
  • ]  
  • }’  

 
5、  删除旧索引
 
[html] view plaincopy 



  • curl–XDELETE localhost:9200/index2  
  from http://blog.csdn.net/changong28/article/details/38491185

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379403-1-1.html 上篇帖子: elasticsearch java API ------搜索 下篇帖子: ElasticSearch的各种服务的URL(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表