インデックスからすべてのIDを取得することは、通常、ひどい考えです。これは、インデックスの大きさによってはさらにひどくなります。本当に必要な場合は、scroll
クエリを使用して必要なものを達成することを検討してください。
https://www.elastic.co/guide/en/elasticsearch/guide/master/scroll.html#CO33-1
ガイドがElasticsearch 2.xのために書かれていますが、あなたはそれを使用している場合、それはElasticsearch 5.xのために働きます。
基本的にそれがどのように動作するか、このです: は資源がy
の時間Elasticsearchによって割り当てられているなど、サイズx
のスクロールウィンドウを作成してスコアリングのオーバーヘッドなしに最初の1000件の結果を返す、分析。最初の応答は、最初のx
文書を返すだけでなく、次のx
文書をフェッチするために使用できる_scroll_id
を返します。
GET http://yourhost:9200/old_index/_search?scroll=1m
{
"query": { "match_all": {}},
"sort" : ["_doc"],
"size": 1000
}
は、上記のクエリに対する応答は、あなたは、次のx
結果をフェッチするので、同じよう_scroll_id
を使用することになり、何かのような...
{
"_scroll_id": "abcdefghijklmnopqrstuvwxyz",
"took": 15,
"timed_out": false,
"terminated_early": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1027,
"max_score": null,
"hits": [
{
...
であると言います。
GET http://yourhost:9200/_search/scroll
{
"scroll": "1m",
"scroll_id" : "abcdefghijklmnopqrstuvwxyz"
}
これは、上記と同様の応答を返します。必ず各要求応答から_scroll_id
を取り出して、次の要求応答に使用してください。これらのすべての応答を使用して、ヒットを繰り返し、IDを抽出することができます。