gpt4 book ai didi

java - Java Data Elasticsearch客户端将端口9200附加到url

转载 作者:行者123 更新时间:2023-12-03 01:16:37 25 4
gpt4 key购买 nike

Spring Data Elasticsearch版本:

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.6.RELEASE</version>
</dependency>

我不明白为什么即使我指定端口 9200,我的Elasticsearch Highlevel客户端也总是将端口强制为 443

这是我定义 RestHighLevelClient的方法:
@Slf4j
@Configuration
public class ElasticsearchConfiguration {

@Value("${elasticsearch.host:127.0.0.1}")
private String elasticsearchHost;

@Value("${elasticsearch.port:9200}")
private String elasticsearchPort;

@Bean(destroyMethod = "close")
public RestHighLevelClient client() throws IOException {
log.info("Creating High level rest client for Elasticsearch with host: " + elasticsearchHost);
ClientConfiguration configuration = ClientConfiguration.builder()
.connectedTo(elasticsearchHost + ":" + elasticsearchPort)
.usingSsl()
.build();

return RestClients.create(configuration).rest();
}

@Bean
public ElasticsearchRestTemplate getElasticsearchTemplate() throws IOException {
return new ElasticsearchRestTemplate(client());
}
}

以及我如何使用模板:
private ElasticsearchRestTemplate elasticsearchTemplate;

@Autowired
public ElasticsearchServiceImpl(@Qualifier("getElasticsearchTemplate") ElasticsearchRestTemplate elasticsearchRestTemplate) {
this.elasticsearchTemplate = elasticsearchRestTemplate;
}

@PostConstruct
public void init() throws IOException {
create indexes...
}

我已经验证了主机和端口都在属性文件中设置:
--elasticsearch.host=https://vpc-example-ryphgjfwji3zonliyhhd3nu.eu-west-2.es.amazonaws.com
--elasticsearch.port=443

在我收到的stacktrace错误中: Caused by: java.io.IOException: https://vpc-example-ryphgjfwji3zonliyhhd3nu.eu-west-2.es.amazonaws.com:443:9200,它似乎是将 9200附加到URL的末尾。为什么会这样呢?

我已验证通过curl成功建立了连接。

编辑:添加了另一个stacktrace
un 09 21:44:44 ip-10xxxx95.pre.xxx-prototype.xxx.uk bash[19738]: 2020-06-09 21:44:44.023 ERROR 19738 --- [           main] c.g.c.s.impl.ElasticsearchServiceImpl    : https://vpc-example-ryphgjfwji3zonliyhhd3nu.eu-west-2.es.amazonaws.com: Name or service not known
Jun 09 21:44:44 ip-10-2xxxxx5.pre.xxx-prototype.xxx.uk bash[19738]: 2020-06-09 21:44:44.024 ERROR 19738 --- [ main] c.g.c.s.impl.ElasticsearchServiceImpl : [org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:964), org.elasticsearch.client.RestClient.performRequest(RestClient.java:233), org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1764),

最佳答案

您能否尝试创建如下所示的resthighleval客户端:

RestHighLevelClient restHighLevelClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(configuration.getElasticsearchConfig().getHost(),
configuration.getElasticsearchConfig().getPort(),
"https")));

并使用以下配置,请注意我将端口配置留空:

--elasticsearch.host=https://vpc-example-ryphgjfwji3zonliyhhd3nu.eu-west-2.es.amazonaws.com --elasticsearch.port=



过去,我已经创建了与AWS ES和托管在AWS中的ES的连接,如果您遇到代码问题,请告诉我,我们将很乐意为您提供进一步的帮助。

关于java - Java Data Elasticsearch客户端将端口9200附加到url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62291419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com