1、创建springboot项目,pom依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--es依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!--使用阿里云仓库-->
<repositories>
<repository>
<id>aliyun-repos</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-plugin</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
二、接口:UserDao
/**
* @author: windy
* @create: 2019-11-30 15:51
*/
public interface UserDao extends ElasticsearchRepository<User, String> {
}
三、实体类
/**
* @author: windy
* @create: 2019-11-30 15:47
*/
@Document(indexName = "info",type = "user")
@Data
public class User {
@Id
private String id;
private String name;
private Integer age;
private Integer sex;
}
四、controller
@Controller
public class EsController {
@Autowired
private UserDao userDao;
@ResponseBody
@RequestMapping("add")
public User addUser(@RequestBody User user){
return userDao.save(user);
}
@ResponseBody
@RequestMapping("findById")
public Optional<User> findById(String id){
return userDao.findById(id);
}
/**
* 分页
*/
@ResponseBody
@RequestMapping("/search")
public Page<User> search(String keyWord, @PageableDefault(page = 0, value = 3) Pageable pageable) {
// 查询所有的
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
if (!StringUtils.isEmpty(keyWord)) {
// 模糊查询 一定要ik中文
MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("name", keyWord);
boolQuery.must(matchQuery);
}
Page<User> page = userDao.search(boolQuery, pageable);
return page;
}
}
五、启动类:
@SpringBootApplication
@EnableElasticsearchRepositories(basePackages = "com.windy.springbootes.repository")
public class SpringbootEsApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootEsApplication.class, args);
}
}
六、利用postman测试
1、添加数据
2、分页查询,size=3
|