通过Java API在弹性搜索中创建索引
发布时间:2020-12-14 17:42:59 所属栏目:Java 来源:网络整理
导读:我使用以下代码在弹性搜索中创建索引, 默认JAVA API: Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name","myClusterName").put("client.transport.sniff",true).build(); Client client = new TransportClient(settings).addTra
我使用以下代码在弹性搜索中创建索引,
默认JAVA API: Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name","myClusterName").put("client.transport.sniff",true).build(); Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost",9200)); CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate("test1"); CreateIndexResponse response = createIndexRequestBuilder.execute().actionGet(); System.out.println(response.isAcknowledged()); REST服务: HttpURLConnection con = null; try { String url = "http://localhost:9200/test2"; URL resturl = new URL(url); con = (HttpURLConnection) resturl.openConnection(); con.setDoOutput(true); con.setRequestMethod("PUT"); BufferedReader in = null; try { if (con.getInputStream() != null) { in = new BufferedReader(new InputStreamReader(con.getInputStream())); } } catch (IOException e) { if (con.getErrorStream() != null) { in = new BufferedReader(new InputStreamReader(con.getErrorStream())); } } if (in == null) { throw new Exception("Unable to read response from server"); } StringBuffer decodedString = new StringBuffer(); String line; while ((line = in.readLine()) != null) { decodedString.append(line); } in.close(); System.out.println("4"); Integer responseCode = con.getResponseCode(); System.out.println(responseCode); } catch (Exception ex) { ex.printStackTrace(); } finally { if (con != null) { con.disconnect(); } } 通过使用REST API,我可以创建索引.默认情况下JAVA API, org.elasticsearch.client.transport.NoNodeAvailableException: No node available at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:202) at org.elasticsearch.client.transport.support.InternalTransportIndicesAdminClient.execute(InternalTransportIndicesAdminClient.java:85) at org.elasticsearch.client.support.AbstractIndicesAdminClient.create(AbstractIndicesAdminClient.java:200) at org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder.doExecute(CreateIndexRequestBuilder.java:206) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:62) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:57) at ElasticSearch.createIndex(ElasticSearch.java:121) at ElasticSearch.main(ElasticSearch.java:157) 请指导我犯错误的地方.提前致谢 解决方法
TransportClient的端口(通过java API)与Http不同 缺省情况下,transportClient端口为9300
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |