ES索引重建--使用python elasticsearch
来源:互联网 发布:mac 外接显示器 风扇 编辑:程序博客网 时间:2024/05/22 20:22
ES索引重建–使用python elasticsearch
在ES集群的使用过程中,有时会遇到需要重新建立mapping的情况,通常,我们会选择建立一个新的索引,然后将数据从原索引迁移到新索引的方式来重建需要的mapping。
之前也有看到过通过Elasticsearch 的Java API 调用scan&scroll 和bulk 的方法,无奈Java 太久没有上手了~~
所以,找了一下,发现有Python的elasticsearch包针对这种Reindex作业提供了方法,相对Java 方法而言,Python 更为简单,仅需数行代码即可。
Python elasticsearch的详细文档链接:http://elasticsearch-py.readthedocs.io/en/latest/
一个简单的示例如下所示:
from elasticsearch import Elasticsearchfrom elasticsearch import helperses_src=Elasticsearch(host_src) #原索引所在ES集群的hostes_des=Elasticsearch(host_des) #新索引所在ES集群的hostbody={"query":{"match_all":{}}} #遍历原索引helpers.reindex(client=es_src,source_index='wechat',target_index='wechat_new',target_client=es_des,query=body,chunk_size=1000) #重建索引
reindex( )方法的具体定义如下:
elasticsearch.helpers.reindex(client, source_index, target_index, query=None, target_client=None, chunk_size=500, scroll=u'5m', scan_kwargs={}, bulk_kwargs={})
- 参数含义
- client – 原索引所在ES
- source_index – 读取documents的索引
- target_index – 写入documents的索引
- query – search( ) api的主体
- target_client – 新索引所在ES
- chunk_size – es传输docs时每块含有的docs数量
- scroll – scroll的时间
- scan_kwargs – additional kwargs to be passed to scan()
- bulk_kwargs – additional kwargs to be passed to bulk()
从根本上来看,reindex( )方法是将scan&scorll 操作和bulk 操作组合到了一起,直接将scroll 得到的docs 通过bulk 导入到es 中,这两种操作的在Python elasticsearch.helpers中也有定义,你如果感兴趣的可以去阅读一下Python elasticsearch的文档。
0 0
- ES索引重建--使用python elasticsearch
- elasticsearch 重建索引 使用python迁移索引数据 reindex
- ElasticsearchCRUD使用(七)【Elasticsearch中的实时重建索引】
- Elasticsearch索引重建(Rebuild)
- Elasticsearch索引重建(Rebuild)
- elasticsearch-重建索引,数据迁移
- elasticsearch 索引重建(Rebuild)
- Elasticsearch索引管理-reindex重建索引
- Elasticsearch 之 不停服务重建索引
- elasticsearch更改mapping(不停服务重建索引)
- elasticsearch更改mapping(不停服务重建索引)
- 使用游标重建索引
- 使用INDEX_STATS重建索引判断
- elasticsearch以scroll方式 大数据重建索引
- ES elasticsearch
- elasticsearch java api使用,es java封装
- ES(elasticsearch)搜索引擎安装和使用
- Python-ElasticSearch的使用
- AOJ 旅行家(状态压缩dp)详解
- Theano深度学习结构分析
- 跳舞_纪中2545_dp
- docker学习
- ios开发科大讯飞的语音识别
- ES索引重建--使用python elasticsearch
- Spring Security教程第一部分-jar包下载
- 速度挑战 - 2小时完成HTML5拼图小游戏
- 如何导入support_v7包
- 蓝鸥Unity开发基础——if语句学习笔记
- JDBC连接数据库
- HDU 5410 (0 1背包+ 完全背包)
- jzoj 2545. 【NOIP2011模拟9.3】跳舞
- iftop笔记