private TransportClient internalBuildElasticClient(String url) { String ipUrl = url.substring(ELASTIC_SEARCH_DRIVER_PREFIX.length()); Settings.Builder settingBuilder = Settings.builder(); settingBuilder.put("client.transport.sniff", true); String hostListString = ipUrl; int clusterNamePosIdx = ipUrl.lastIndexOf("/"); if (clusterNamePosIdx >= 0) { hostListString = hostListString.substring(0, clusterNamePosIdx); settingBuilder.put("cluster.name", ipUrl.substring(clusterNamePosIdx + 1)); } else { settingBuilder.put("client.transport.ignore_cluster_name", true); } List<InetSocketTransportAddress> addressList = Lists.newLinkedList(); String[] connStringList = hostListString.split(Constants.COMMA); for (String connStr : connStringList) { String[] connArr = connStr.split(Constants.COLON); if (connArr.length == 1) { addressList.add(new InetSocketTransportAddress(new InetSocketAddress(connArr[0], 9300))); } else { addressList.add(new InetSocketTransportAddress(new InetSocketAddress(connArr[0], Integer.parseInt(connArr[1])))); } } return new PreBuiltTransportClient(settingBuilder.build()) .addTransportAddresses(addressList.toArray(new InetSocketTransportAddress[addressList.size()])); }
private ElasticClientProxy internalBuildElasticClient(String url) { String ipUrl = url.substring(ELASTIC_SEARCH_DRIVER_PREFIX.length()); Settings.Builder settingBuilder = Settings.builder(); settingBuilder.put("client.transport.sniff", true); String hostListString = ipUrl; int clusterNamePosIdx = ipUrl.lastIndexOf("/"); if (clusterNamePosIdx >= 0) { hostListString = hostListString.substring(0, clusterNamePosIdx); settingBuilder.put("cluster.name", ipUrl.substring(clusterNamePosIdx + 1)); } else { settingBuilder.put("client.transport.ignore_cluster_name", true); } List<InetSocketTransportAddress> addressList = Lists.newLinkedList(); String[] connStringList = hostListString.split(Constants.COMMA); for (String connStr : connStringList) { String[] connArr = connStr.split(Constants.COLON); if (connArr.length == 1) { addressList.add(new InetSocketTransportAddress(new InetSocketAddress(connArr[0], DEFAULT_ES_PORT))); } else { addressList.add(new InetSocketTransportAddress(new InetSocketAddress(connArr[0], Integer.parseInt(connArr[1])))); } } TransportClient transportClient = new PreBuiltTransportClient(settingBuilder.build()) .addTransportAddresses(addressList.toArray(new InetSocketTransportAddress[addressList.size()])); return (ElasticClientProxy) Proxy.newProxyInstance(ElasticClientProxy.class.getClassLoader(), new Class[]{ElasticClientProxy.class}, new CloseClientProxyInvocationHandler(transportClient)); }