gpt4 book ai didi

java - 使用 java 连接到安全 Elastic Search

转载 作者:行者123 更新时间:2023-12-01 19:29:28 30 4
gpt4 key购买 nike

我想连接我的安全 ElasticSearch 并加载我的索引数据并将其存储在变量中。我在 java 中找到了 RestHighLevelClient,它帮助我连接了 Elasticsearch 。

代码如下:

import org.apache.http.HttpHost;
import org.elasticsearch.client.ElasticsearchClient;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;

public class ESConnect {
public static void main(String[] args){
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
System.out.println(client);
}
}

Maven 依赖关系:

<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.5.2</version>
</dependency>

但是我的 ElasticSearch 受到用户名密码的保护。 Httphost 没有用户名密码 参数。我找到了这个Secure connection using transport client 。但没有正确的答案来连接安全的ElasticSearch。所以我不知道如何使用 java 连接我的安全 Elasticsearch 。接下来,我在 ElasticSearch 中有一个名为 football_data索引。我想使用 java 加载索引数据并将其存储在变量中。帮助我连接到安全的 elasticSearch 并使用 java 加载索引数据。请提供一些解决方案。

最佳答案

由 Elasticsearch 创建 docs 。你应该推荐他们。现在执行以下操作...

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});

RestHighLevelClient client = new RestHighLevelClient(builder);

现在,为了获取数据,您必须使用您想要的查询创建一个 searchRequest (我认为如果数据超过 10000,匹配查询将使用滚动 api 进行)。关注此link .

关于java - 使用 java 连接到安全 Elastic Search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182233/

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