시도해보십시오. 그것은 HttpURLConnection을 사용하여 HTTP API를 통해 문서 인덱싱을 위해 나를 위해 작동합니다.
URL obj = new URL("http://localhost:9200/index/type");
String json = "{\n" +
" \"user\" : \"kimchy\",\n" +
" \"post_date\" : \"2009-11-15T14:12:12\",\n" +
" \"message\" : \"trying out Elasticsearch\"\n" +
"}";
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream());
osw.write(json);
osw.flush();
osw.close();
System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
if (con != null)
con.disconnect();
HttpURLConnection을 사용하여 간단한 검색 수행.
URL obj = new URL("http://localhost:9200/index/type/_search");
String json = "{\n" +
" \"query\": {\n" +
" \"match_all\": {}\n" +
" }\n" +
"}";
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream());
osw.write(json);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
System.out.println("Response : " + br.readLine());
System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
if (con != null)
con.disconnect();
지금 작성한 코드를 표시하십시오. ES 5.6에서는 [저수준 REST 클라이언트] (https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-low-usage-initialization)를 사용할 수 있습니다. html)은 다른 의존성없이 Apache의 HTTP 클라이언트를 감싸는 래퍼입니다. – Val
아마도 당신은 HTTP 요청 헤더에'Content-Type' 헤더를 보내지 않을 것입니다. 가능한? – Val