使用java传输客户端连接到Elasticsearch。Get请求不返回任何内容
我是elasticsearch新手,但我正在尝试从elasticsearch文档中实现基本的java Get API。 我正在使用TransportClient连接到elasticsearch。据我所知,TransportClient使用端口9300。Elasticsearch位于端口9200上。当我使用指定的集群、索引、类型和id调用get请求时,只会返回一个空的字段列表。我已经用sense插件在elasticsearch中创建了索引,并通过head插件进行了验证。然而,当我试图通过java实现检索这些值时,我什么也得不到。下面是我代码的一部分使用java传输客户端连接到Elasticsearch。Get请求不返回任何内容,java,spring-mvc,
elasticsearch,Java,Spring Mvc,
elasticsearch,我是elasticsearch新手,但我正在尝试从elasticsearch文档中实现基本的java Get API。 我正在使用TransportClient连接到elasticsearch。据我所知,TransportClient使用端口9300。Elasticsearch位于端口9200上。当我使用指定的集群、索引、类型和id调用get请求时,只会返回一个空的字段列表。我已经用sense插件在elasticsearch中创建了索引,并通过head插件进行了验证。然而,当我试图通过java
public String transportClientToElasticSearch()
{
Settings settings = ImmutableSettings.settingsBuilder()
.put("client.transport.sniff", "true")
.put("cluster.name", "elasticsearch").build();
Client client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
//.addTransportAddress(new InetSocketTransportAddress("localhost", 9200));
client.admin().indices().prepareRefresh("index").execute();
GetResponse response = client.prepareGet("index", "type", "id")
.execute()
.actionGet();
String elasticResponse = response.getFields().toString();
return elasticResponse;
}
我最初的想法是,这是由于TransportClient和TransportES的端口号不同造成的。有什么想法吗?多谢各位 您只需通过检索字段,这将生成一个
Map
您的端口正常,9200是HTTP流量的默认端口,9300是TCP流量的默认端口(即通过TransportClient)。您能显示ES服务器上的相关日志吗?您好@Val,谢谢您的回复。查看logs文件夹,只有elasticsearch.log已更新,并且仅在启动elasticsearch.bat时更新。我似乎找不到任何与上述内容相关的日志语句或文件。您是否尝试检索response.getSource()
,这应该会生成文档字段的映射?太棒了!成功了。response.getSource()返回指定Id的字段。这是我期望从response.getFields()返回的内容。