【发布时间】:2016-01-12 07:15:02
【问题描述】:
我正在尝试检索、更新和删除来自 Amazon Elasticsearch 的数据。为了从 Amazon Elasticsearch Service 获取数据,我使用了官方的 Java API 或 www.elastic.co,但我无法弄清楚我的 Java 代码有什么问题。
另外,我不是 AWS 专家。但是当我在浏览器中打开 search-testing-xxxxxxxxxxxxxx.ap-xxxxxxx-1.es.amazonaws.com url 时,它会提供响应。同样的 url 适用于 PHP 中的所有操作。
如果有其他库可以连接 Amazon Elasticsearch,请提供示例链接。
源代码
import java.net.InetAddress;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
public class ElasticSearchExample {
public static void main(String[] args) throws Exception{
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "34xxxxxxx:testing")
.put("http.enabled", true).build();
Client client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(
InetAddress
.getByName("search-testing-xxxxxxxxxxxxx.ap-xxxxxxx-1.es.amazonaws.com"),
80));
GetResponse response = client.prepareGet("inventory", "parent", "7874").get();
System.out.println(response);
client.close();
}
}
输出
Exception in thread "main" NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{xx.xxx.xxx.x}{search-testing-xxxxxxxxxxxxx.ap-xxxxxxx-1.es.amazonaws.com/xx.xxx.xxx.x:80}]]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:290)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:207)
at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:283)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:347)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:67)
at ElasticSearchExample.main(ElasticSearchExample.java:28)
【问题讨论】:
标签: java amazon-web-services elasticsearch