Python将elasticsearch数据转移到mongdb

from pymongo import MongoClient
from elasticsearch import Elasticsearch

def elasticsearch_to_mongodb(user, pwd, server, port, db_name, elasticsearch_url, elasticsearch_index):
    uri = 'mongodb://' + user + ':' + pwd + '@' + server + ':' + port +'/'
    client = MongoClient(uri)
    # 查看参数配置:https://pypi.org/project/elasticsearch/
    es = Elasticsearch(hosts=elasticsearch_url)
    query = es.search(index=elasticsearch_index, scroll='5m', size=10000)

    results = query['hits']['hits'] # es查询出的结果第一页
    total = query['hits']['total']  # es查询出的结果总量
    scroll_id = query['_scroll_id'] # 游标用于输出es查询出的所有结果

    for i in range(0, int(total/100)+1):
        # scroll参数必须指定否则会报错
        query_scroll = es.scroll(scroll_id=scroll_id, scroll='5m')['hits']['hits']
        results += query_scroll

    for res in results:
    	#这里我是根据类型来定义表名的,也可以自定义
        table_name = res['type']
        db = client[db_name]['保险条款内容定义']
        db.insert_one(res)

if __name__ == '__main__':
    user = "user "
    pwd = "pwd "
    server = "服务器IP"
    port = "端口号"
    db_name = "数据库名称"
    elasticsearch_url = "elasticsearch的寻址地址"

    elasticsearch_index = 'elasticsearch的索引名'
    elasticsearch_to_mongodb(user, pwd, server, port, db_name, elasticsearch_url, elasticsearch_index)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值