由于我想使用Elasticsearch的Java API,我尝试使用Java TransportClient连接到外部Elasticsearch的REST服务器,我必须调用的URL如下所示:
https://ssl-secure-host/their-index/their-type/_search
显然,我首先使用keytool信任 ssl-secure-host 提供的认证,并生成 keystore.jks 。
我没有关于elasticsearch的索引,节点等的任何其他信息,我只有上面的URL。
这是我正在编写的TransportClient,用于建立连接:
ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch")
.put("discovery.zen.ping.multicast.enabled", false)
.put("shield.user", "user:password")
.put("shield.ssl.truststore.path", "/Users/me/path/cert/keystore.jks")
.put("shield.ssl.truststore.password", "changeit")
.put("shield.transport.ssl", true);
TransportClient client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("ssl-secure-host", ?????));
是否可以以任何其他方式建立连接,或者我必须向我的提供商询问有关主机,端口等的更多信息?
或者,我是否必须通过实施一个简单的REST客户端来查询其他人提供给我的Elasticsearch索引来辞职?
是否有可能在弹性搜索节点的前面存在Apache HTTP Server?
非常感谢您提前:))
答案 0 :(得分:0)
您可以使用JEST库。它是ElasticSearch的HTTP客户端。因此,您可以使用它来代替Elasticsearch提供的传输客户端