首页 > 解决方案 > 如何将批量数据发布到弹性搜索?

问题描述

我正在尝试对弹性搜索进行批量插入。下面是代码

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"}

这就是解决方案。有用。看起来很疯狂,但它确实有效。

标签: pythonelasticsearch

解决方案


推荐阅读