如何批量采集高质量好文章( 2018年05月30日ES在之前的博客已有介绍)
优采云 发布时间: 2021-10-24 13:08如何批量采集高质量好文章(
2018年05月30日ES在之前的博客已有介绍)
python批量导入数据到Elasticsearch的实例
更新时间:2018-05-30 10:43:27 作者:Xiaowei xiaowei2
今天小编就分享一个python批量导入数据到Elasticsearch的例子,有很好的参考价值,希望对大家有所帮助。跟着小编一起来看看
ES在之前的博客中已经介绍过了,提供了很多接口。本文介绍如何使用python进行批量导入。 ES官网的文档很多,仔细使用,结合搜索引擎应该不难。
先给代码
#coding=utf-8
from datetime import datetime
from elasticsearch import Elasticsearch
from elasticsearch import helpers
es = Elasticsearch()
actions = []
f=open('index.txt')
i=1
for line in f:
line = line.strip().split(' ')
action={
"_index":"image",
"_type":"imagetable",
"_id":i,
"_source":{
u"图片名":line[0].decode('utf8'),
u"??Դ":line[1].decode('utf8'),
u"权威性":line[2].decode('utf8'),
u"大小":line[3].decode('utf8'),
u"质量":line[4].decode('utf8'),
u"类别":line[5].decode('utf8'),
u"型号":line[6].decode('utf8'),
u"国别":line[7].decode('utf8'),
u"采集人":line[8].decode('utf8'),
u"所属部门":line[9].decode('utf8'),
u"关键词":line[10].decode('utf8'),
u"访问权限":line[11].decode('utf8')
}
}
i+=1
actions.append(action)
if(len(actions)==500):
helpers.bulk(es, actions)
del actions[0:len(actions)]
if (len(actions) > 0):
helpers.bulk(es, actions)
每句话的意思还是很明显的。这里有几件事要说。首先index.txt是utf8编码的,所以需要将decode('utf8')转成unicode对象,加u之前需要“图片名”,否则ES会报错
导入速度还是很快的,每秒2000多条记录。
上面python批量导入数据到Elasticsearch的例子是编辑器分享的全部内容。希望能给大家一个参考,也希望大家多多支持脚本之家。