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

标签 java elasticsearch kibana elastic-stack

我想连接我的安全 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/

相关文章:

kibana - 如何在 Kibana “Discover” 选项卡上按降序日期/时间排序

elasticsearch - 如何在节点集群中安装 Search Guard 5?

elasticsearch - 是否有任何适用于 ELK 堆栈的开源警报和报告插件可用?

java - IBM RAD 7.5的安装因JVM崩溃而失败

java - 如何用纯JPA实现历史表?

elasticsearch - Elasticsearch批量删除导致 “Courier Fetch”错误

json - Elasticsearch将嵌套的json视为纯字符串:无法在start_object上获取文本

java - notificationDataSetChanged() 没有更新我的微调器的数组

java - 测试单链表的循环

sorting - Elasticsearch:按条件匹配的字段对某些项目进行排序,其他按条件进行排序