gpt4 book ai didi

java - 使用 java 连接 Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 22:47:39 24 4
gpt4 key购买 nike

我是 java 的新手来自 python .我知道有很多答案可以联系ElasticSearchjava .但我很难理解,有些已经过时了。在python中,我可以轻松导入elasticsearch模块并连接到它。

这是python中的代码:

from elasticsearch import Elasticsearch
es = Elasticsearch('localhost', port=9200, http_auth=('username', 'password'), scheme="http")

但是在 java ,我已包含 elasticsearch pom.xml 中的 maven 依赖项.我想连接到 elasticsearch .我才知道 RestHighLevelClient可以做这个工作。我找到了这段代码。但不知道如何使其连接到 Elastic Search。
public RestHighLevelClient createESRestClient() {
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPassword));

RestClientBuilder restClientBuilder = RestClient
.builder(new HttpHost(esRestclientHost, 9200, "http"));
// Use this one if your ElasticSearch server is setup to use username & password authentication
if (esAuthentication) {
restClientBuilder.setHttpClientConfigCallback(h -> h.setDefaultCredentialsProvider(credentialsProvider));
}

return new RestHighLevelClient(restClientBuilder);
}

任何人都可以帮助我或向我展示一些使用 java 连接 Elastic Search 的示例代码。在 python 中,它分两行完成。帮助我 java .

最佳答案

要使用 java 连接 elasticsearch,您可以使用以下代码:

public class ElasticsearchClient {
//private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
private final RestHighLevelClient client;

public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
client = new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchConfig.getHost(),
elasticsearchConfig.getPort(), "http")));
}
}

Elasticsearch 配置:
host: localhost

port: 9200
  • 更多信息可以查看thisthis .

  • 您甚至可以按照 documentation 中的说明进行操作

    您需要在 pom.xml 中添加此依赖项
    <dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>${es.client.version}</version>
    </dependency>

    更新 1

    为了在代码本身中添加主机和端口,您可以使用下面提到的代码,而不是单独的配置文件:
    public class ElasticsearchClient {
    private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
    private final RestHighLevelClient client;


    public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
    client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
    }

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

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