ES学习和常用查询
1.使用ES的第一步,添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
2.编写ES配置类EsConfig
package com.fh.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;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
/**
* @ClassName: ElasticsearchConfig
* @Author: 272126
* @Date: 2021/4/24 8:58
*/
@Configuration
@EnableElasticsearchRepositories
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9200")//ip地址和es的端口号
.build();
return RestClients.create(clientConfiguration).rest();
}
}
3.新建service接口 extents ElasticsearchRepository<User,String>
package com.fh.service;
import com.fh.entity.User;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import java.util.Optional;
public interface UserService extends ElasticsearchRepository<User,String> {
}
4.测试增删改查
保存
@RequestMapping("Test")
public Object demo(User user) {
try {
User save = userService.save(user);
return save;
} catch (Exception e) {
return e.getMessage();
}
}
根据id查询
@RequestMapping("select2")
public Object demo4(String id){
Optional<User> byId = userService.findById(id);
User user = byId.get();
return user;
}
根据id删除
@RequestMapping("select3")
public Object demo5(String id){
userService.deleteById(id);
return "success";
}
查询所有
@RequestMapping("select4")
public Object demo5(){
Iterable<User> all = userService.findAll();
all.forEach(itme->{
System.out.println(itme.toString());
});
return null;
}
模糊查询
@RequestMapping("select")
public Object demo3(){
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
MatchPhraseQueryBuilder query = QueryBuilders.matchPhraseQuery("username", "王");
MatchPhraseQueryBuilder age = QueryBuilders.matchPhraseQuery("age", 87);
boolQueryBuilder.must(age);
boolQueryBuilder.must(query);
Iterable<User> search = userService.search(boolQueryBuilder);
search.forEach(item->{
String s = item.toString();
System.out.println(s);
});
return null;
}

浙公网安备 33010602011771号