python - 如何将批量数据发布到弹性搜索?
问题描述
我正在尝试对弹性搜索进行批量插入。下面是代码
import re
fname = 'meta_info.csv'
df = pd.read_csv(fname)
df = df.iloc[5:9,:]
df.reset_index(inplace = True)
df.rename(columns ={"index":"temp", "investment_name":"names"}, inplace = True)
df['create'] = df["temp"].apply(lambda x: json.dumps({"create":{"_id":x}}))
df["names1"] = df["names"].apply(lambda x: json.dumps({"names":x}))
df['final'] = df['create']+r"@"+ df['names1']
s = df['final'].str.cat(sep = r"@")
s = s+"@"
s1 = re.sub(r"@", r'\n', s)
url = 'http://localhost:9200/my_index/_bulk'
response = requests.post(url, headers=headers1, data= s1)
print(response.content)
s1 - 输入请求:
{"create": {"_id": 5}}
{"names": "Birla Sun Life Fixed Maturity Plan - Annual Series 3-Growth"}
{"create": {"_id": 6}}
{"names": "Birla Sun Life Fixed Maturity Plan - Annual Series 1-Dividend"}
{"create": {"_id": 7}}
{"names": "Birla Sun Life Fixed Maturity Plan - Annual Series 1-Growth"}
{"create": {"_id": 8}}
{"names": "Birla Sun Life Fixed Maturity Plan - Quarterly Series II-Dividend"}
这就是解决方案。有用。看起来很疯狂,但它确实有效。