Я создаю расширенное поисковое приложение с использованием Elastic Search 5.0.1, в котором сотни тысяч записей индексируются в эластичный поиск. Это происходит каждые несколько секунд для нескольких индексов из моего Java-клиента, используя HttpURLConnection . Я использую Bulk API эластичного поиска , для которого я создаю один объект PUT, содержащий строки JSON, разделенные строками, как показано ниже (как показано в документации Bulk API ):
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)
Как я мог проверить здесь , теоретического ограничения на размер данных PUT нет, а есть только ограничения, налагаемые клиентом и сервером.
Налагает ли служба Elastic Search какие-либо подобные ограничения? Если да, каковы эти ограничения и как лучше обрабатывать этот случай (изменить ограничения сервера или пакетные запросы)?