From e7167edd53d61f607e8efce9dcc397a2b4a0c571 Mon Sep 17 00:00:00 2001 From: JeffLi1993 Date: Wed, 17 May 2017 15:19:37 +0800 Subject: [PATCH] =?UTF-8?q?Spring=20Boot=20=E6=95=B4=E5=90=88=20Elasticsea?= =?UTF-8?q?rch=EF=BC=8C=E5=AE=9E=E7=8E=B0=20function=20score=20query=20?= =?UTF-8?q?=E6=9D=83=E9=87=8D=E5=88=86=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springboot/controller/CityRestController.java | 13 +++++++------ .../java/org/spring/springboot/domain/City.java | 7 +++---- .../springboot/repository/CityRepository.java | 14 ++++++++++++++ .../org/spring/springboot/service/CityService.java | 4 ++-- .../springboot/service/impl/CityServiceImpl.java | 9 +++++---- 5 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 springboot-elasticsearch/src/main/java/org/spring/springboot/repository/CityRepository.java diff --git a/springboot-elasticsearch/src/main/java/org/spring/springboot/controller/CityRestController.java b/springboot-elasticsearch/src/main/java/org/spring/springboot/controller/CityRestController.java index b8b443d..2f2f4f5 100644 --- a/springboot-elasticsearch/src/main/java/org/spring/springboot/controller/CityRestController.java +++ b/springboot-elasticsearch/src/main/java/org/spring/springboot/controller/CityRestController.java @@ -3,9 +3,10 @@ package org.spring.springboot.controller; import org.spring.springboot.domain.City; import org.spring.springboot.service.CityService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 城市 Controller 实现 Restful HTTP 服务 *

@@ -18,14 +19,14 @@ public class CityRestController { private CityService cityService; @RequestMapping(value = "/api/city", method = RequestMethod.POST) - public void createCity(@RequestBody City city) { - cityService.saveCity(city); + public Long createCity(@RequestBody City city) { + return cityService.saveCity(city); } @RequestMapping(value = "/api/city/search", method = RequestMethod.GET) - public Page searchCity(@RequestParam(value = "pageNumber") Integer pageNumber, - @RequestParam(value = "pageSize", required = false) Integer pageSize, - @RequestParam(value = "searchContent") String searchContent) { + public List searchCity(@RequestParam(value = "pageNumber") Integer pageNumber, + @RequestParam(value = "pageSize", required = false) Integer pageSize, + @RequestParam(value = "searchContent") String searchContent) { return cityService.searchCity(pageNumber,pageSize,searchContent); } } diff --git a/springboot-elasticsearch/src/main/java/org/spring/springboot/domain/City.java b/springboot-elasticsearch/src/main/java/org/spring/springboot/domain/City.java index 20b575e..55a1b5e 100644 --- a/springboot-elasticsearch/src/main/java/org/spring/springboot/domain/City.java +++ b/springboot-elasticsearch/src/main/java/org/spring/springboot/domain/City.java @@ -9,11 +9,10 @@ import java.io.Serializable; * * Created by bysocket on 03/05/2017. */ -@Document(indexName = "cityIndex", type = "city") -public class City { +@Document(indexName = "cityindex", type = "city") +public class City implements Serializable{ -// implements Serializable -// private static final long serialVersionUID = -1L; + private static final long serialVersionUID = -1L; /** * 城市编号 diff --git a/springboot-elasticsearch/src/main/java/org/spring/springboot/repository/CityRepository.java b/springboot-elasticsearch/src/main/java/org/spring/springboot/repository/CityRepository.java new file mode 100644 index 0000000..c262e81 --- /dev/null +++ b/springboot-elasticsearch/src/main/java/org/spring/springboot/repository/CityRepository.java @@ -0,0 +1,14 @@ +package org.spring.springboot.repository; + +import org.spring.springboot.domain.City; +import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; +import org.springframework.stereotype.Repository; + +/** + * Created by bysocket on 17/05/2017. + */ +@Repository +public interface CityRepository extends ElasticsearchRepository { + + +} diff --git a/springboot-elasticsearch/src/main/java/org/spring/springboot/service/CityService.java b/springboot-elasticsearch/src/main/java/org/spring/springboot/service/CityService.java index 24646a0..ebbde17 100644 --- a/springboot-elasticsearch/src/main/java/org/spring/springboot/service/CityService.java +++ b/springboot-elasticsearch/src/main/java/org/spring/springboot/service/CityService.java @@ -2,7 +2,7 @@ package org.spring.springboot.service; import org.spring.springboot.domain.City; -import org.springframework.data.domain.Page; +import java.util.List; public interface CityService { @@ -22,5 +22,5 @@ public interface CityService { * @param searchContent * @return */ - Page searchCity(Integer pageNumber, Integer pageSize, String searchContent); + List searchCity(Integer pageNumber, Integer pageSize, String searchContent); } \ No newline at end of file diff --git a/springboot-elasticsearch/src/main/java/org/spring/springboot/service/impl/CityServiceImpl.java b/springboot-elasticsearch/src/main/java/org/spring/springboot/service/impl/CityServiceImpl.java index eb14d79..154f631 100644 --- a/springboot-elasticsearch/src/main/java/org/spring/springboot/service/impl/CityServiceImpl.java +++ b/springboot-elasticsearch/src/main/java/org/spring/springboot/service/impl/CityServiceImpl.java @@ -34,17 +34,17 @@ public class CityServiceImpl implements CityService { @Override public Long saveCity(City city) { + City cityResult = cityRepository.save(city); return cityResult.getId(); } @Override - public Page searchCity(Integer pageNumber, + public List searchCity(Integer pageNumber, Integer pageSize, String searchContent) { // 分页参数 - // 按城市编号倒序 - Pageable pageable = new PageRequest(pageNumber, pageSize, Sort.Direction.DESC, "id"); + Pageable pageable = new PageRequest(pageNumber, pageSize); // Function Score Query FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery() @@ -60,7 +60,8 @@ public class CityServiceImpl implements CityService { LOGGER.info("\n searchCity(): searchContent [" + searchContent + "] \n DSL = \n " + searchQuery.getQuery().toString()); - return cityRepository.search(searchQuery); + Page searchPageResults = cityRepository.search(searchQuery); + return searchPageResults.getContent(); } }