簡體   English   中英

如何並行重新索引ElasticSearch

[英]How to parallel reIndex ElasticSearch

我正在嘗試為ElasticSearch重新建立索引,我使用了Scan and Bulk API,但是它非常慢,如何並行處理才能使其更快。 我的python代碼如下:

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個分片。

在elasticsearch方面,事情是平行的。 您正在從每個碎片中獲得成功。 但是,您始終可以向查詢中添加一些子句,並且只需同時運行多個搜索即可。 例如,日期范圍或數字/字母范圍可能適用於此。

順便說一句。 由於您使用的是python,因此與線程並發處理的工作量可能會有所不同。 我在處理進程而不是使用python線程方面有豐富的經驗。 例如在python中的解釋器上具有全局鎖定曾經存在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM