如何使用python动态选择索引。我当前的代码如下:
import os
import time
import datetime
from datetime import datetime
import shutil
from elasticsearch import Elasticsearch
from esindex import createIndex
client=Elasticsearch()
我有1000幅图像,图像名称为:1559624525_cb704087042c76bf.jpg。我将名称分为两部分,时间戳记(1559624525)和修补(cb704087042c76bf),并将其写入es索引。
path="/home/ubuntu/images/"
for root, dirs, files in os.walk(path):
for name in files:
try:
dat=name.split('_')[0]
machid=name.split('_')[1]
machid=machid.split('.')[0]
createIndex(machid) ##this creates index dynamically
dat=int(dat)
dat=datetime.utcfromtimestamp(dat).strftime('%d-%m-%Y %H:%M:%S')
dte=dat.split(' ')[0]
id=id+1
doc = {'sequence_id':id,'imagename': name, 'time_stamp': dat, 'date'=dte}
#print(doc)
client.index(index=machid, body=doc) ##this line is not working. If i comment this out, shutil works.
shutil.copy('/home/ubuntu/images/'+ name, '/home/ubuntu/test/')
os.remove('/home/ubuntu/images/' + name)
except Exception:
continue
如何通过动态选择索引将文档输入到Elasticsearch中。
答案 0 :(得分:0)
machid
是否为空答案 1 :(得分:0)
显然,我认为我的代码有效。在createIndex函数中,我有一个日期字段,该字段设置为date,但是上面的代码将日期解析为文本。为了进行测试,当我将日期更改为createIndex中的文本时,所有内容都放置到位。回复此操作即可完成质量检查循环。