我有一个简单的python脚本,用于索引包含一百万行的CSV文件:
import csv from pyes import * reader = csv.reader(open('data.csv', 'rb')) conn = ES('127.0.0.1:9200', timeout=20.0) counter = 0 for row in reader: try: data = {"name":row[5]} conn.index(data,'namesdb',counter, bulk=True) counter += 1 except: pass
这种方法效果很好,但是当我们进入成千上万的时候,它们的速度都呈指数下降。
我猜测如果我在较小的块中进行索引,ES的性能会更好。
有更有效的方法吗?sleep()会延迟帮助吗?还是有一种简单的方法可以通过编程将csv分成较小的块?
谢谢。
每运行N次
es.refresh()
这里的例子