【发布时间】:2019-02-01 20:08:51
【问题描述】:
我正在使用 Elastic Search 5.0.1 创建一个重度更新搜索应用程序,其中数十万条记录被索引到弹性搜索中。对于来自我的 Java 客户端使用 HttpURLConnection 的多个索引,这种情况每隔几秒就会发生一次。我正在使用elastic search's Bulk API,为此我创建了一个包含行分隔的JSON字符串的单个PUT实体,如下所示(如Bulk API docs所示):
action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
....
action_and_meta_data\n
optional_source\n
但是,当文档数量超过一定限制时,我得到以下异常:
java.io.IOException: Error writing to server
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:582)
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:594)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1216)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
我可以检查here,理论上对 PUT 数据大小没有限制,只有客户端和服务器施加的限制。
Elastic Search 服务是否施加任何此类限制?如果是,这些限制是什么以及如何更好地处理这种情况(修改服务器限制或批处理查询)?
【问题讨论】:
标签: java elasticsearch http-post httpurlconnection elasticsearch-5