我正在使用AWS ElasticSearch 2.3中的Java中的批量HTTP API。 當我使用REST客戶端,爲德批量加載,我得到以下錯誤:AWS ElasticSearch 2.3 Java HTTP批量API
504 GATEWAY_TIMEOUT
當我運行它LAMBDA在Java中,HTTP的帖子,我得到:
{
"errorMessage": "2017-01-09T19:05:32.925Z 8e8164a7-d69e-11e6-8954-f3ac8e70b5be Task timed out after 15.00 seconds"
}
通過測試我注意到,大宗原料藥不調整這些設置這些:
"number_of_shards" : 5,
"number_of_replicas" : 5
當碎片和副本都設置爲1,我可以做一個批量加載沒有問題。 我一直在使用此設置以使我的批量加載嘗試:
"refresh_interval" : -1
但到目前爲止,它在所有做沒有任何影響。在Java Lambda中,我將數據作爲來自S3位置的InputStream加載。 對於Java HTTP,我現在有什麼選擇? 還有什麼我可以嘗試的索引設置? 我可以嘗試AWS訪問策略中的其他任何內容嗎? 謝謝你的時間。
1Edit:
我也嘗試了這些PARAMS:_bulk action.write_consistency =一個&刷新,但沒有什麼區別爲止。
2Edit:
這裏是什麼讓我的批量加載工作 - 建立一致性參數(我並不需要設置refresh_interval):
URIBuilder uriBuilder = new URIBuilder(myuri);
uriBuilder = uriBuilder.addParameter("consistency", "one");
HttpPost post = new HttpPost(uriBuilder.build());
HttpEntity entity = new InputStreamEntity(myInputStream);
post.setEntity(entity);