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)
Python将elasticsearch数据转移到mongdb
最新推荐文章于 2022-02-19 09:58:20 发布