2016-05-19 4 views
0

大きいインデックスを使用して大きなインデックスを照会しました。一致するすべてのドキュメントを大きなインデックスで取得する必要がありましたが、長い時間が経過してタイムアウトしました。結果は返されません。タイムアウトなしにすべてのデータを取得する他の方法はありますか? マイクエリ:大きな弾性検索インデックスのクエリのタイムアウト

{ 
"size": 90000000, 
"query": { 
    "filtered": {"query": {"match_all":{}},"filter":{"term": {"isbn": 475869}} 
    } 
    } 
} 

答えて

0

あなたが大量のデータを取得する必要がある場合はscrollingを使用する必要があります。

まず、クエリでのスクロールを開始:

curl -XGET 'localhost:9200/your_index/your_type/_search?scroll=1m' -d '{ 
    "size": 5000, 
    "query": { 
     "term" : { 
      "isbn" : "475869" 
     } 
    } 
}' 

その後、あなたはそれ以降の要求を実行するために使用することができます応答、で最初の5000個の文書だけでなく、_scroll_idトークンを取得します。

次に、結果がなくなるまで、5000個のドキュメントの次のバッチを取得するために、前の応答のscroll_idトークンを使用して次の要求を繰り返し実行できます。

Jestを使用しているので、使用できるクラスはSearchScrollです。そのクラスがどのように使用されるかはtest casesを参照してください。

+0

@DevExこれを試すことができましたか? – Val

関連する問題