elasticsearch,Java,Spring Boot,elasticsearch" /> elasticsearch,Java,Spring Boot,elasticsearch" />

Java RestClient弹性搜索外部主机

Java RestClient弹性搜索外部主机,java,spring-boot,elasticsearch,Java,Spring Boot,elasticsearch,我正在尝试使用JavaSpringBoot访问外部URL ES服务器 相应的旋度为: curl -XGET 'xyz.elasticsearch.abc.consul:9200/data/values/_search?' -d '{"query" :{"bool":{"must":{"match":{"_type__s":"filter-variable"}}}}}' Res

我正在尝试使用JavaSpringBoot访问外部URL ES服务器

相应的旋度为:

curl -XGET 'xyz.elasticsearch.abc.consul:9200/data/values/_search?' -d '{"query"
:{"bool":{"must":{"match":{"_type__s":"filter-variable"}}}}}'
RestHighLevelClient=新的RestHighLevelClient(
RestClient.builder(
新的HttpHost(“xyz.elasticsearch.abc.concur”,9200,“http”);
SearchRequest SearchRequest=新的SearchRequest(“数据”);
SearchSourceBuilder SearchSourceBuilder=新的SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery(“\u type\u s”,“filter variable”);
searchRequest.source(searchSourceBuilder);
SearchResponse SearchResponse=client.search(searchRequest,RequestOptions.DEFAULT);
SearchHits=searchResponse.getHits();
SearchHit[]searchHits=hits.getHits();
for(SearchHit:searchHits){
Map sourceAsMap=hit.getSourceAsMap();
System.out.println(“name”+sourceAsMap.get(“name”);
}
client.close();

这样,当curl仍然在同一台机器上工作时,我最终收到了由以下原因引起的
:java.net.ConnectException:Connection-sequended(Connection-sequended)
。任何帮助都会很好。

我还没有想到如何使用客户端,但一个简单的替代方法是使用RestTemplate发出请求。将完整URL一直传递到_search?查询作为有效负载,工作正常。如果需要,可以使用Gson来处理Json响应。Java有elasticsearch库,对吗?我希望你指的是API库。我试过了,但没法让它们发挥作用@斯密特
            RestHighLevelClient client = new RestHighLevelClient(
                    RestClient.builder(
                            new HttpHost("xyz.elasticsearch.abc.consul", 9200, "http")));
            SearchRequest searchRequest = new SearchRequest("data");
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            searchSourceBuilder.query(QueryBuilders.matchQuery("_type__s", "filter-variable"));
            searchRequest.source(searchSourceBuilder);
            SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
            SearchHits hits = searchResponse.getHits();
            SearchHit[] searchHits = hits.getHits();
            for (SearchHit hit : searchHits) {
                Map<String, Object> sourceAsMap = hit.getSourceAsMap();
                System.out.println("name  "+ sourceAsMap.get("name"));
            }
            client.close();