Como falar com o serviço aws elasticsearch usando o cliente java elástico?
Eu configurei um servidor elasticsearch usandoServiço de pesquisa elástica da AWS (Não EC2). Isso me deu um ponto finalhttps://xxx-xxxxxxxx.us-west-2.es.amazonaws.com/ e se eu clicar nesse terminal (observe que não há nenhuma porta especificada), posso obter o valor esperado
{
status: 200,
name: "Mastermind",
cluster_name: "xxxx",
version: {
number: "1.5.2",
build_hash: "yyyyyy",
build_timestamp: "2015-04-27T09:21:06Z",
build_snapshot: false,
lucene_version: "4.10.4"
},
tagline: "You Know, for Search"
}
A questão é como obter isso através do cliente java elasticsearch sem um número de porta? O código de exemplo que recebo é
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300));
Se eu usar esse código e apenas substituir "host1" pelo meu nó de extremidade, obterá "NoNodeAvailableException"
ps: A versão do cliente java que estou usando é 2.0.0.
Editar Eu finalmente decidi ir comJest, um cliente REST de terceiros. Mas o que a Brooks respondeu abaixo também é muito útil - a AWS usa a porta 80 para http e 443 para https. O bloqueador para mim foi o firewall, eu acho.
Edit2 A documentação do serviço da AWS ES diz explicitamente:
O serviço suporta HTTP na porta 80, mas não suporta transporte TCP.