【发布时间】:2017-10-24 15:34:44
【问题描述】:
我在 MongoDb 中加载了一些 json 数据。例如doc1 = {"id": 1,"name": "x1"},doc2 = {"id": 2,"name": "x2"},doc3 = {"id": 3,"name": " x3"}。现在我希望将这些数据从 MongoDb 导入到 Elasticsearch。这段代码是我写的。
mgclient = MongoClient()
db = mgclient['light-test']
col = db['test']
es1 = Elasticsearch()
print ("Connected", es1.info())
es1.indices.create(index='light-test', ignore=400)
# Pull from mongo and dump into ES using bulk API
actions = []
for data in tqdm(col.find(), total=col.count()):
data.pop('_id')
action = {
"_index": 'light-test',
"_type": 'test',
"_source": data
}
actions.append(action)
print("complete")
# Dump x number of objects at a time
if len(actions) >= 100:
deque(parallel_bulk(es1, actions), maxlen=0)
actions = []
print("done")
a = es1.search(index='light-test', body={
'query': {
'match_all': {
}
}
})
print(a)
问题出在返回的查询中。命中显示空白,而它应该返回 json 文件。 results
帮助我将数据从 MongoDb 导入 Elasticsearch。
【问题讨论】:
标签: python json mongodb elasticsearch