我最近已经从Elasticsearch 1.7切换到2.0,我注意到您设置客户端的方式已经改变。我仔细阅读了文档,由于某种原因,客户端始终为空。我想知道我是否正确设置了它。
这是我的代码:
Client client = null; try { client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); } catch (Exception e) { Logger.log(e); } finally { client.close(); try { conn.close(); } catch (SQLException e) { Logger.log(e); } }
如评论中所述,但有一些更详细的信息:Elasticsearch 2.0使用Guava 18.0(请参阅https://github.com/elastic/elasticsearch/pull/7593)。因此,要修复错误java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;,请确保使用Guava 18.0作为依赖项,而不是其他版本。
java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;