使用Java客户端

时间:2015-07-09 18:12:59

标签: java ssl elasticsearch https

由于我想使用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?

非常感谢您提前:))

1 个答案:

答案 0 :(得分:0)

您可以使用JEST库。它是ElasticSearch的HTTP客户端。因此,您可以使用它来代替Elasticsearch提供的传输客户端

检查此链接: https://github.com/searchbox-io/Jest