0

Ограничение количества поисковой выдачи

This commit is contained in:
2017-06-03 13:11:06 +03:00
parent 3aecf0047a
commit cfb9678018
3 changed files with 6 additions and 3 deletions

View File

@@ -7,6 +7,6 @@ package kinosearch.kinosearch3.base;
import java.util.List; import java.util.List;
public interface BaseRepository { public interface BaseRepository {
List<CinemaDocument> findByTitle(String title); List<CinemaDocument> findByTitle(String title, int page);
void save(CinemaDocument cinemaDocument); void save(CinemaDocument cinemaDocument);
} }

View File

@@ -22,10 +22,13 @@ public class MongoDBRepository implements BaseRepository {
} }
@Override @Override
public List<CinemaDocument> findByTitle(String title) { public List<CinemaDocument> findByTitle(String title, int page) {
Query query = new Query(); Query query = new Query();
final String regex = String.format(".*%s.*", Pattern.quote(title)); final String regex = String.format(".*%s.*", Pattern.quote(title));
query.addCriteria(Criteria.where("title").regex(regex, "i")); 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()); logger.debug("query: {}", query.toString());
return mongoOperations.find(query, CinemaDocument.class); return mongoOperations.find(query, CinemaDocument.class);
} }

View File

@@ -46,7 +46,7 @@ public class WebAppController {
if (searchText.trim().isEmpty()) { if (searchText.trim().isEmpty()) {
return "redirect:/"; return "redirect:/";
} }
List<CinemaDocument> cinemaDocuments = baseRepository.findByTitle(searchText.trim()); List<CinemaDocument> cinemaDocuments = baseRepository.findByTitle(searchText.trim(), 1);
model.addAttribute("cindocs", cinemaDocuments); model.addAttribute("cindocs", cinemaDocuments);
model.addAttribute("searchText", searchText); model.addAttribute("searchText", searchText);
return "searchResult"; return "searchResult";