一、引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
二、配置application.yml
spring:
elasticsearch:
username: elastic
password: elastic
uris: localhost:9200
三、编写配置文件
@Configuration
@RequiredArgsConstructor
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {
private final ElasticsearchProperties elasticsearchProperties;
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo(elasticsearchProperties.getUris().get(0))
.withBasicAuth(elasticsearchProperties.getUsername(),elasticsearchProperties.getPassword())
.build();
return RestClients.create(clientConfiguration).rest();
}
}
四、实体类中使用@Document注解配置Elasticsearch索引名称
@Data
@Document(indexName = "test")
public class EsEntity {
private Integer id;
private String name;
@JsonProperty("create_time")
private String createTime;
}
五、创建Repository接口,以供业务模块使用。类似Mybatis的mapper,支持CURD
@Repository
public interface TestRepository extends ElasticsearchRepository<EsEntity, String> {
}
六、控制层
@RestController
public class EsEntityController {
@Autowired
private TestRepository testRepository;
/**
* 查询所有
* @return
*/
@GetMapping("list")
public Iterable<EsEntity> list() {
Iterable<EsEntity> all = testRepository.findAll();
return all;
}
/**
* 添加数据 会自动创建es表
* @param esEntity
* @return
*/
@PostMapping("add")
public String add(@RequestBody EsEntity esEntity) {
EsEntity save = testRepository.save(esEntity);
if(save != null) {
return "success";
}
return "fail";
}
}
七、效果
1.先执行添加数据,会自动创建索引
2.Postman查询所有数据