2017-03-29 1 views
0

例えば、私は次のように名前のインデックスのかなりの数が多い:いくつかの弾性インデックスをバッチ再インデクシングする方法はありますか?

logstash-oidmsgcn_2016.12.01 
logstash-oidmsgcn_2016.12.02 
logstash-oidmsgcn_2016.12.03 
... 
logstash-oidmsgcn_2017.02.21 

は名前にインデックスを作成する必要があります

bk-logstash-oidmsgcn_2016.12.01 
bk-logstash-oidmsgcn_2016.12.02 
bk-logstash-oidmsgcn_2016.12.03 
... 
bk-logstash-oidmsgcn_2017.02.21 

ので、私は自分の名前のバッチで接頭辞を与える必要があります方法。 この仕事をするにはどうすればよいですか? 私はreindex apibulk apiを参照しましたが、私はまだその方法のハングアップを得ることができません。

答えて

1

すべてのインデックスを再インデックスすることができます。これが機能するためには、あなたがenable dynamic scriptingに必要

POST _reindex 
{ 
    "source": { 
    "index": "logstash-oidmsgcn_*" 
    }, 
    "dest": { 
    "index": "bk-logstash-oidmsgcn" 
    }, 
    "script": { 
    "inline": "ctx._index = 'bk-logstash-oidmsgcn_' + (ctx._index.substring('logstash-oidmsgcn_'.length(), ctx._index.length()))" 
    } 
} 

注:あなたがこれを行うことが開いている場合は、このようなreindex APIでそれを行うことができます。

+0

ありがとうございました!しかし、私はこのコマンドを実行するとエラーが発生しました: "理由": "script_langはサポートされていません[無痛]"。それは私の弾性バージョン2.4のためかもしれません。しかし、 "lang"という行を削除した後、 "reason": "[inline]型のスクリプト、[update]、lang [groovy]のスクリプトが無効になります" – leon

+0

[はい、動的スクリプトを有効にする] (https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html#enable-dynamic-scripting)もちろんもちろん – Val

+0

はい、この設定は私のために働く: "script.engine .groovy.file.update:true "と表示されます。もう一度ありがとうございます。 – leon

関連する問題