public JsonObject executeBulk(String path, String body) throws ElasticException {
		HttpURLConnection connection = null;
		try {
			URL httpURL = new URL(hostURL + path);
			connection = (HttpURLConnection) httpURL.openConnection();
			connection.setRequestMethod(POST);
			connection.setRequestProperty("Content-Type", "application/x-ndjson");
			connection.setDoOutput(true);
			try (Writer writer = new OutputStreamWriter(connection.getOutputStream())) {
				writer.write(body);
			}
			lastResponseCode = connection.getResponseCode();
			JsonObject resp = grabResponse(connection);
			if (!lastRequestSuccessful()) {
				throw new ElasticException(parseErrorJSON(resp));
			}
			return resp;
		}
		catch (IOException e) {
			throw new ElasticException("Error sending request: " + e.getMessage());
		}
		catch (JsonParseException e) {
			throw new ElasticException("Error parsing response: " + e.getMessage());
		}
		finally {
			if (connection != null) {
				connection.disconnect();
			}
		}
	}
Send a bulk request to the elasticsearch server.  This is a special format for combining multiple commands
and is structured slightly differently from other commands.
@param path is the specific URL path receiving the bulk command
@param body is structured list of JSON commands and source
@return the response as parsed JsonObject
@throws ElasticException for any problems with the connection
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/elastic/ElasticConnection.java