参考文档地址:
Elasticsearch 官方文档地址:点击链接
Spring Data Elasticsearch 官方文档地址:点击链接
添加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
1.初始化Elasticsearch
- 在yml配置文件中配置es的连接参数(略)
- 新建一个config类,配置es(如下)
@Configuration
public class ElasticsearchConfig {
@Bean
public RestHighLevelClient restHighLevelClient() {
// 这个是springboot的文档推荐写法
// ClientConfiguration clientConfiguration = ClientConfiguration.builder()
// .connectedTo("192.168.203.129:9200").build();
//
// return RestClients.create(clientConfiguration).rest();
// es官方文档推荐写法
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("192.168.203.129", 9200, "http")));
return client;
}
}
2.简单查询
Spring Data Elasticsearch提供了一个ElasticsearchRepository接口,可以很方便的自定义简单的查询方法。
public interface MyRepository extends ElasticsearchRepository<User, Long> {
/**
* 根据id或者年龄或者名字查询
* @param id
* @param age
* @param name
* @return
*/
User findByIdOrAgeOrName(Long id, Integer age, String name);
/**
* 删除年龄大于或等于给定值的数据
* @param age
*/
void deleteByAgeGreaterThanEqual(Integer age);
/**
* 搜索指定年龄段的user
* @param start 开始年龄
* @param end 结束年龄
* @return
*/
User findAllByAgeBetween(int start,int end);
}
这里要注意,自定义方法的名字是有规则的,idea会自动提示,根据提示,以及自己想要的操作,书写方法名和对应参数即可。在Spring Data Elasticsearch的文档里也有相关说明
1.1测试代码
@Autowired
private MyRepository myRepository;
// 查询年龄为27岁的用户数据
@Test
void myTest6() {
User rico = myRepository.findByIdOrAgeOrName(null, 27, null);
System.out.println(rico);
}
// 插入一条user数据
@Test
void myTest7() throws IOException {
User user = User.builder()
.name("rico3")
.age(35)
.id(3L)
.birthday(new Date())
.build(