我们正在开发Spring Boot中的 Elasticsearch 应用程序。我们不能使用 Elasticsearch 提供的Java API或Java Rest Client API。取而代之的是,我们需要使用spring rest模板在Elastic中进行操作,但是Elastic似乎并没有接受其余客户端的索引请求。我们得到了“Not Acceptable”响应。如果有人给我们一些提示或信息,我将非常感谢。
flex 版:5.6
最佳答案
试试这个。它适用于我,使用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();
关于elasticsearch - 如何实现Spring Rest Client进行 Elasticsearch ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46229463/