diff --git a/src/main/java/kinosearch/kinosearch3/base/BaseRepository.java b/src/main/java/kinosearch/kinosearch3/base/BaseRepository.java index f76d4df..63cb193 100644 --- a/src/main/java/kinosearch/kinosearch3/base/BaseRepository.java +++ b/src/main/java/kinosearch/kinosearch3/base/BaseRepository.java @@ -7,6 +7,6 @@ package kinosearch.kinosearch3.base; import java.util.List; public interface BaseRepository { - List findByTitle(String title); + List findByTitle(String title, int page); void save(CinemaDocument cinemaDocument); } diff --git a/src/main/java/kinosearch/kinosearch3/base/MongoDBRepository.java b/src/main/java/kinosearch/kinosearch3/base/MongoDBRepository.java index b6ee14a..c2327e4 100644 --- a/src/main/java/kinosearch/kinosearch3/base/MongoDBRepository.java +++ b/src/main/java/kinosearch/kinosearch3/base/MongoDBRepository.java @@ -22,10 +22,13 @@ public class MongoDBRepository implements BaseRepository { } @Override - public List findByTitle(String title) { + public List findByTitle(String title, int page) { Query query = new Query(); final String regex = String.format(".*%s.*", Pattern.quote(title)); query.addCriteria(Criteria.where("title").regex(regex, "i")); + final int limitPage = 10; + query.skip(limitPage * (page-1)); + query.limit(limitPage); logger.debug("query: {}", query.toString()); return mongoOperations.find(query, CinemaDocument.class); } diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java index ef182cc..165561f 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java @@ -46,7 +46,7 @@ public class WebAppController { if (searchText.trim().isEmpty()) { return "redirect:/"; } - List cinemaDocuments = baseRepository.findByTitle(searchText.trim()); + List cinemaDocuments = baseRepository.findByTitle(searchText.trim(), 1); model.addAttribute("cindocs", cinemaDocuments); model.addAttribute("searchText", searchText); return "searchResult";