我想连接安全的ElasticSearch
并加载索引数据并将其存储在变量中。我发现RestHighLevelClient
在java
其中帮助我与弹性搜索建立了联系。
这是代码:
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
受username
和保护password
。Httphost
没有username
和password
参数。我使用传输客户端找到了此安全连接。但是没有正确的答案来与安全连接ElasticSearch
。所以我不知道如何使用java连接我的安全弹性搜索。接下来,我有一个index
名为football_data
在ElasticSearch
。我想加载索引数据并使用将其存储在变量中java
。帮助我使用来连接到安全的elasticSearch
和加载索引数据java
。请为此提供一些解决方案。
由弹性搜索文档创建。您应该推荐他们。现在,请执行以下操作...
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,则Match查询将使用滚动api)。点击此链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句