首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何并行reIndex ElasticSearch

如何并行reIndex ElasticSearch
EN

Stack Overflow用户
提问于 2016-08-25 22:19:34
回答 1查看 973关注 0票数 0

我正在尝试扫描ElasticSearch,我使用了Scan和Bulk API,但它非常慢,我如何并行这个过程才能让它更快。我的python代码如下:

代码语言:javascript
复制
actions=[]
for hit in helpers.scan(es,scroll='20m',index=INDEX,doc_type=TYPE,params=
     {"size":100}):
    value= hit.get('_source')
    idval = hit.get('_id')
    action = indexAction(INDEX_2,TYPE_2,idval,value)
    actions.append(action)
    count+=1
    if(count%200==0):
        helpers.bulk(es, actions,stats_only=True,params=
        {"consistency":"one","chunk_size":200})
        actions=[]

我是应该扫描多个进程,还是应该批量扫描多个进程。我一直在想ElasticSearch-Hadoop是如何实现这一点的。我的索引有10个节点和20个分片。

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 23:17:08

在elasticsearch方面,事情是平行的。您将从每个分片中获得命中结果。但是,您可以随时向查询添加一些子句,并简单地同时运行多个搜索。例如,日期范围或数字/字母范围可能适用于此。

顺便说一句。由于您使用的是python,因此使用线程并发执行任务的里程可能会有所不同。我有很好的使用python创建进程而不是线程的经验。例如,在python中解释器上有一个全局锁,这是一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39147823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档