如何配置RestHighLevelClient连接远程Elasticsearch主机?
配置RestHighLevelClient连接远程Elasticsearch主机(6.2.3版本)
你的代码问题出在
HttpHost的参数使用错误:HttpHost构造时第一个参数只需传纯主机地址(不要带http://前缀),协议、主机、端口需要分开指定。正确的基础配置代码:
RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("example.com", 9200, "http") // 替换为你的远程主机地址、端口、协议 ) );
- 适配HTTPS或自定义端口的场景:
// 示例:连接HTTPS协议、端口9243的远程主机 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("your-remote-es-host.com", 9243, "https") ) );
- 若远程Elasticsearch需身份验证,可添加请求拦截器:
CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("your-username", "your-password")); RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("example.com", 9200, "http") ).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider) ) );
内容的提问来源于stack exchange,提问作者Madhu Reddy
相关产品推荐
相关产品推荐

