elasticsearch - 如何实现Spring Rest Client进行 Elasticsearch ?

标签 elasticsearch spring-boot spring-data-elasticsearch

我们正在开发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/

相关文章:

elasticsearch - NEST弹性查询工作几个小时,然后停止

java - Spring测试集成未运行我如何处理这个错误?

spring-boot - 在将使用ES的应用程序从Spring Boot 1.5.x迁移到2.x时,如何实现零停机时间

java - spring-data-elasticsearch 3.1.9 的 elasticsearch-server 版本

elasticsearch - Elasticsearch Java API:等到在搜索结果中找到文档?

database - Elasticsearch 唯一字段

elasticsearch - Elasticsearch -搜索API查询

java - 捕获 AuthenticationProvider 中抛出的异常

java - @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 不适用于微服务上下文

Spring数据elasticSearch使用findOne返回null