Elasticsearch とコマンド ライン プログラミング初心者向けの質問です。
私は自分のコンピューターでelasticsearchをローカルにセットアップしており、スキャンとスクロールAPIを使用して異なるバージョンのesを使用するサーバーからドキュメントをプルし、それらをインデックスに追加したいと考えています。es の一括 API でこれを行う方法がわかりません。
現在、テスト段階で、次のコードを使用してサーバーからいくつかのドキュメントを取得しています (これは機能します)。
http MY-OLD-ES.com:9200/INDEX/TYPE/_search?size=1000 | jq .hits.hits[] -c | while read x; do id="`echo "$x" | jq -r ._id`"; index="`echo "$x" | jq -r ._index`"; type="`echo "$x" | jq -r ._type`"; doc="`echo "$x" | jq ._source`"; http put "localhost:9200/junk-$index/$type/$id" <<<"$doc"; done
スキャンとスクロールがどのように機能するかについてのヒント (初心者で少し混乱しています)。これまでのところ、スクロールしてスクロールIDを取得できることはわかっていますが、スクロールIDをどうするかはわかりません。私が電話したら
http get http://MY-OLD-ES.com:9200/my_index/_search?scroll=1m&search_type=scan&size=10
スクロールIDを受け取ります。これをパイプして同じ方法で解析できますか? さらに、要求を続けるように指示するには、while ループが必要になると思います。これについて具体的にどうすればいいですか?
ありがとう!