一、配置RestHighLevelClient
package cn.edu.tju.config;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("xx.xx.xx.xx:9200")
.build();
return RestClients.create(clientConfiguration).rest();
}
}
二、注入RestHighLevelClient,并调用相关API
package cn.edu.tju.controller;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.UUID;
import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE;
@RestController
public class EsDemoController4 {
@Autowired
private RestHighLevelClient highLevelClient;
@RequestMapping("/testHi")
public String testHi() throws Exception{
IndexRequest request = new IndexRequest("spring-data")
.id(UUID.randomUUID().toString())
.source(Collections.singletonMap("yesterday", "once more"))
.setRefreshPolicy(IMMEDIATE);
IndexResponse response = highLevelClient.index(request, RequestOptions.DEFAULT);
return response.getResult().toString();
}
}