Como eu gostaria de usar a API Java do Elasticsearch, estou tentando me conectar ao servidor REST externo do Elasticsearch usando o Java TransportClient, a URL que preciso chamar é semelhante a:
https://ssl-secure-host/their-index/their-type/_search
Obviamente, eu primeiro confiei na certificação fornecida por ssl-secure-host usando o keytool e gerou o keystore.jks.
Não tenho nenhuma outra informação sobre o índice do elasticsearch, nós, etc., tenho apenas a URL acima.
Este é o TransportClient que estou escrevendo para estabelecer uma conexão:
ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch")
.put("discovery.zen.ping.multicast.enabled", false)
.put("shield.user", "user:password")
.put("shield.ssl.truststore.path", "/Users/me/path/cert/keystore.jks")
.put("shield.ssl.truststore.password", "changeit")
.put("shield.transport.ssl", true);
TransportClient client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("ssl-secure-host", ?????));
Será possível estabelecer uma conexão de qualquer outra forma ou devo pedir ao meu provedor mais informações sobre o hospedeiro, porta, etc?
Ou terei que me resignar a fazer isso implementando um cliente REST simples para consultar o índice do Elasticsearch que outras pessoas me fornecem?
É possível que exista um servidor Apache HTTP na frente dos nós do elasticsearch?
Muito obrigado antecipadamente :)
Respostas:
0 para resposta № 1Você pode usar a biblioteca JEST. É um cliente HTTP para ElasticSearch. Portanto, você pode usá-lo em vez do cliente de transporte fornecido pela Elasticsearch
verifique este link: https://github.com/searchbox-io/Jest