Подключение к защищенному Elasti c Поиск с использованием java - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу соединиться с моим защищенным ElasticSearch, загрузить данные индекса и сохранить их в переменной. Я нашел RestHighLevelClient в java, который помог мне соединиться с поиском elasti c.

Вот код:

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. Так что я не знаю, как подключить мой защищенный поиск elasti c, используя java. Далее у меня есть index с именем football_data в ElasticSearch. Я хочу загрузить данные индекса и сохранить их в переменной, используя java. Помогите мне подключиться к защищенному elasticSearch и загрузить данные индекса, используя java. Пожалуйста, предоставьте некоторые решения для этого.

1 Ответ

3 голосов
/ 12 февраля 2020

Создано elasti c search 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 с запросом по вашему желанию (я думаю, что запрос Match будет делать с API прокрутки, если данные больше чем 10000). Перейдите по этой ссылке .

...