검색 요청 api 개선

thkim
강석 최 2024-04-05 17:18:32 +09:00
parent 182186dc26
commit d0f17a8086
5 changed files with 19 additions and 15 deletions

View File

@ -20,15 +20,15 @@ public class DocSearchController {
private final DocSearchService docSearchService; private final DocSearchService docSearchService;
@GetMapping(value="/doc-title", produces = MediaType.APPLICATION_JSON_VALUE) @GetMapping(value="/doc-title", produces = MediaType.APPLICATION_JSON_VALUE)
public List<DocTitle> searchTitle (@RequestParam(value="searchText", required = true) String text){ public List<DocTitle> searchTitle (@RequestParam(value="searchText", required = true) String text, @RequestParam(value="pageNum", required = true) Integer pageNum){
return docSearchService.selectDocTitle(text); return docSearchService.selectDocTitle(text, pageNum);
} }
@GetMapping(value="/doc-index", produces = MediaType.APPLICATION_JSON_VALUE) @GetMapping(value="/doc-index", produces = MediaType.APPLICATION_JSON_VALUE)
public List<DocIndex> searchIndex (@RequestParam(value="searchText", required = true) String text){ public List<DocIndex> searchIndex (@RequestParam(value="searchText", required = true) String text, @RequestParam(value="pageNum", required = true) Integer pageNum){
return docSearchService.selectDocIndex(text); return docSearchService.selectDocIndex(text, pageNum);
} }
@GetMapping(value="/doc-content", produces = MediaType.APPLICATION_JSON_VALUE) @GetMapping(value="/doc-content", produces = MediaType.APPLICATION_JSON_VALUE)
public List<DocContent> searchContent (@RequestParam(value="searchText", required = true) String text){ public List<DocContent> searchContent (@RequestParam(value="searchText", required = true) String text, @RequestParam(value="pageNum", required = true) Integer pageNum){
return docSearchService.selectDocContent(text); return docSearchService.selectDocContent(text, pageNum);
} }
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.kcscopensearch.opensearch.docSearch.repository; package com.dbnt.kcscopensearch.opensearch.docSearch.repository;
import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocContent; import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocContent;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -9,5 +10,5 @@ import java.util.List;
@Repository @Repository
public interface DocContentRepository extends ElasticsearchRepository<DocContent, Integer> { public interface DocContentRepository extends ElasticsearchRepository<DocContent, Integer> {
List<DocContent> findByTableContentContains(String text); List<DocContent> findByTableContentContains(String text, Pageable pageable);
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.kcscopensearch.opensearch.docSearch.repository; package com.dbnt.kcscopensearch.opensearch.docSearch.repository;
import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocIndex; import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocIndex;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -9,5 +10,5 @@ import java.util.List;
@Repository @Repository
public interface DocIndexRepository extends ElasticsearchRepository<DocIndex, Integer> { public interface DocIndexRepository extends ElasticsearchRepository<DocIndex, Integer> {
List<DocIndex> findByGroupTitleContains(String text); List<DocIndex> findByGroupTitleContains(String text, Pageable pageable);
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.kcscopensearch.opensearch.docSearch.repository; package com.dbnt.kcscopensearch.opensearch.docSearch.repository;
import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocTitle; import com.dbnt.kcscopensearch.opensearch.docSearch.model.DocTitle;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -9,5 +10,5 @@ import java.util.List;
@Repository @Repository
public interface DocTitleRepository extends ElasticsearchRepository<DocTitle, Integer> { public interface DocTitleRepository extends ElasticsearchRepository<DocTitle, Integer> {
List<DocTitle> findByDocNmContains(String text); List<DocTitle> findByDocNmContains(String text, Pageable pageable);
} }

View File

@ -9,6 +9,7 @@ import com.dbnt.kcscopensearch.opensearch.docSearch.repository.DocTitleRepositor
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -122,15 +123,15 @@ public class DocSearchService {
log.info("contentIndexing end"); log.info("contentIndexing end");
} }
public List<DocTitle> selectDocTitle(String text) { public List<DocTitle> selectDocTitle(String text, Integer pageNum) {
return titleRepository.findByDocNmContains(text); return titleRepository.findByDocNmContains(text, PageRequest.of(pageNum, 20));
} }
public List<DocIndex> selectDocIndex(String text){ public List<DocIndex> selectDocIndex(String text, Integer pageNum){
return indexRepository.findByGroupTitleContains(text); return indexRepository.findByGroupTitleContains(text, PageRequest.of(pageNum, 20));
} }
public List<DocContent> selectDocContent(String text){ public List<DocContent> selectDocContent(String text, Integer pageNum){
return contentRepository.findByTableContentContains(text); return contentRepository.findByTableContentContains(text, PageRequest.of(pageNum, 20));
} }
} }