elasticsearch,Amazon Web Services,elasticsearch" /> elasticsearch,Amazon Web Services,elasticsearch" />

Amazon web services AWS JAVA ElasticsearchClient群集和索引查找

Amazon web services AWS JAVA ElasticsearchClient群集和索引查找,amazon-web-services,elasticsearch,Amazon Web Services,elasticsearch,我使用什么AWS Elasticsearch Java API指向AWS ElasticsearchClient集群并确定集群中是否存在索引 1编辑: 以下是如何指向群集: String endpoint = "search-name-ppb6tuag3s4srci5qwou6eumru.us-region-x.es.amazonaws.com"; es_client = new AWSElasticsearchClient( new BasicAWSCredentials(key,secret

我使用什么AWS Elasticsearch Java API指向AWS ElasticsearchClient集群并确定集群中是否存在索引

1编辑: 以下是如何指向群集:

String endpoint = "search-name-ppb6tuag3s4srci5qwou6eumru.us-region-x.es.amazonaws.com";
es_client = new AWSElasticsearchClient( new BasicAWSCredentials(key,secret), clientConfig);    
es_client.setEndpoint(endpoint);
2编辑: AWS Elastic文档指向Elastic.co API。elastic.co API引用了他们的传输API:

client = TransportClient.builder().settings(settings).build();
client.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(endpoint,9300))); 

但是!!!AWS ES引擎不支持transport 9300端点,因此决定改用Java HTTP Resp API。我当然希望AWS文档能更明确地描述它,我花了很多时间试图弄清楚这一点

您可以使用客户端管理界面检查名为index\u name的索引是否同步存在

boolean exists = client.admin().indices()
    .prepareExists(INDEX_NAME)
    .execute().actionGet().isExists();

该库只能用于配置Amazon Elasticsearch,即它是一个用于创建、配置和管理Elasticsearch域的配置API,但不用于与Elasticsearch交互。对于这一点,现有的答案提供了一个解决方案。@val:由于AWS身份验证,我认为我必须使用AWSElasticsearchClient。您是否知道如果使用org.elasticsearch.client.client库,我将如何向AWS进行身份验证?我曾尝试使用2.3 elasticsearch库创建您所指的客户端,但没有成功,只是出现错误“没有配置的节点可用”,我想这一定是身份验证问题,所以我开始研究AWS库。你能用基本卷曲从本地框访问elasticsearch集群吗?另外,请检查您是否可以通过端口9300I在AWS盒上远程登录以获取AWS elastic的健康检查信息。我一直在试9300和80。要运行curl,我必须在没有端口引用的情况下运行它。我无法同时使用org.elasticsearch.client,请参阅我的编辑2。