我有一些文档(大小约为 if ($(window).scrollTop() > 50) {
$('.bg').addClass('show');
$('nav li a').css('color', '#FFCF01');
$('nav li a').css('text-decoration', 'underline');
} else {
$('.bg').removeClass('show');
$('nav li a').css('color', '#00529C');
$('nav li a').css('text-decoration', 'none');
};
),我想使用python lib插入我的ES索引中,代码和使用300o/doc
之间存在巨大的时差,很明显,是正常的,但我想知道时间是否可以改善(与时间比例相比)
curl
选项大约需要插入 20秒,整个时间需要 10秒(用于打印ES结果,但要插入20秒数据)
curl
使用curl -H "Content-Type: application/json" -XPOST
"localhost:9200/contentindex/doc/_bulk?" --data-binary @superfile.bulk.json
选项,我使用设置python
(10000/16/16
)达到了至少 1min20
chunk/thread/queue
事实
import codecs
from collections import deque
from elasticsearch import Elasticsearch
from elasticsearch.helpers import parallel_bulk
es = Elasticsearch()
def insert_data(filename, indexname):
with codecs.open(filename, "r", encoding="utf-8", errors="ignore") as fic:
for line in fic:
json_line = {}
json_line["data1"] = "random_foo_bar1"
json_line["data2"] = "random_foo_bar2"
# more fields ...
yield {
"_index": indexname,
"_type": "doc",
"_source": json_line
}
if __name__ == '__main__':
pb = parallel_bulk(es, insert_data("superfile.bulk.json", "contentindex"),
chunk_size=10000, thread_count=16, queue_size=16)
deque(pb, maxlen=0)
尝试了多个值问题
我还能改善时间吗?
如果没有,我应该考虑一种将数据写入文件然后对[100-50000]/[2-24]/[2-24]
命令使用进程的方法吗?
——————————
如果我只尝试解析部分,则需要15秒:
curl