Я установил сервер elasticsearch с помощью службы AWLS elasticsearch (не EC2). Это дало мне конечную точку https://xxx-xxxxxxxx.us-west-2.es.amazonaws.com/, и если я нажму на эту конечную точку (обратите внимание, что нет указанного порта), я могу получить ожидаемый
{
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"
}
Вопрос в том, как получить это через java-клиент elasticsearch без номера порта? Образец кода, который я получаю,
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300));
Если я использую этот код и просто заменю "host1" на свою конечную точку, я получу "NoNodeAvailableException"
пс: Используемая версия java-клиента - 2.0.0.
Edit Наконец, я решил пойти с Jest, сторонним клиентом REST. Но то, что Брукс ответил ниже, также очень полезно - AWS действительно использует порт 80 для http и 443 для https. Блокатор для меня был брандмауэром, я думаю.
Edit2
В сервисной документации AWS ES прямо сказано:
Служба поддерживает HTTP на порту 80, но не поддерживает транспорт TCP.