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)

猜你喜欢

转载自blog.csdn.net/smsmtiger/article/details/89104833
今日推荐