java - 如何连接到 AWS Elasticsearch?

标签 java amazon-web-services elasticsearch amazon-elasticsearch

我正在尝试连接到 AWS Elasticsearch,但我总是收到以下错误:

Exception in thread "main" org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:278)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:197)
at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106)
at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:98)
at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:334)
at org.elasticsearch.action.index.IndexRequestBuilder.doExecute(IndexRequestBuilder.java:313)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:91)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:65)
at com.c_backendcrawler.utility.ElasticSearch.uploadObject(ElasticSearch.java:25)
at com.c_backendcrawler.Start.main(Start.java:34)

我的代码如下:

 //Create Client
    Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "zencubes-search").put("node.name","Darkhawk").build();
    TransportClient transportClient = new TransportClient(settings);
    transportClient.addTransportAddress(new InetSocketTransportAddress(
            "x.x.x.x",9300));
    return transportClient;

AWS Elasticsearch 的输出:

    {
status: 200,
name: "Darkhawk",
cluster_name: "817880037706:zencubes-search",
version: {
number: "1.5.2",
build_hash: "62ff9868b4c8a0c45860bebb259e21980778ab1c",
build_timestamp: "2015-04-27T09:21:06Z",
build_snapshot: false,
lucene_version: "4.10.4"
},
tagline: "You Know, for Search"
}

我尝试 curl ( https://search-zencubes-search-xxxxxxxx.eu-west-1.es.amazonaws.com/ ) 并且它有效 - 但不是在端口 9300 上。我在这里做错了什么?

最佳答案

native 传输协议(protocol)不支持使用 AWS Managed ElasticSearch,并且只能通过 REST 端点使用。考虑切换您的客户端以使用 REST 端点,例如 https://github.com/searchbox-io/Jest .

来源:https://forums.aws.amazon.com/thread.jspa?messageID=681938

关于java - 如何连接到 AWS Elasticsearch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412635/

相关文章:

java - 如何在 Android Studio 中触摸多个按钮而不释放屏幕

amazon-web-services - AWS CloudWatch Logs Insights - 导出完整查询结果?

java - 如何使用 Java 删除包含文件的文件夹

amazon-web-services - Ansible + AWS EC2 插件 + 用户名 + 动态 list 文件上的 ssh key

amazon-web-services - Azure DevOps 管道

elasticsearch - 在索引的文本字段中查找最常用的术语

elasticsearch - Elasticsearch:仅过滤时,为什么要使用过滤的查询类型

elasticsearch - 如何在Elasticsearch中用逗号查找数字?

java - 在 onCreateViewHolder 中使用不同的 View

java - 如何在mockito中模拟一个函数?