검색은 범위를 점점 좁혀가며 원하는 문서를 찾아가는 과정입니다.
- 검색필터 : 수많은 아이템중 필요한 아이템 컬렉션으로 줄이기 위한 검색 옵션
- 검색결과 : 검색 필터에의해 반환된 아이템 컬렉션
검색 옵션(필터)
namespace SearchApi.Models.Filter { public class Paging { public int page { get; set; } // 0 base public int limit { get; set; } } public class Sort { public string price { get; set; } public string viewCnt { get; set; } public string saleCnt { get; set; } } public class Filters { public int minPrice { get; set; } public int maxPrice { get; set; } public string category1 { get; set; } public string category2 { get; set; } public string category3 { get; set; } public string tag { get; set; } } public class SearchFilter { public Paging paging { get; set; } public Sort sort { get; set; } public Filters filters { get; set; } public string keyword { get; set; } } }
검색옵션(필터)는 다음과 같은 요소로 나누어 이해할수 있습니다.
- 기본요소 : 페이징처리및 정렬방법
- 확장요소 : 가격범위,카테고리 한정등 도메인에 특화된 필터
- 고급요소 : 반경검색및 형태소 분석이 반영된 키워드 검색등...
검색결과
public class FilterCount { public string fieldName { get; set; } public string name { get; set; } public int count { get; set; } } public class Summary { public List<string> tags { get; set; } public List<FilterCount> filterCounts { get; set; } } public class SearchResult { public List<SearchGoods> list {get;set;} public int total { get; set; } public int size { get; set; } public Summary summary { get; set; } }
노출을 위한 기본 상품 정보(SearchGoods) 컬렉션을 포함하여 페이징 처리및 결과내 재검색을 위한 몇가지 집계 정보도 같이 내려주게됩니다.
검색필터에 적용된 전체 집계정보를 항상 내려줌으로 , 결과내 재검색이 가능하게해야합니다.
- 의류 키워드를 통해 검색을 했다.
- 의류 키워드에는 A 카테고리 -15개 , B 카테고리 -20개 관련 카테고리 요약 정보가 표시된다.
- 사용자는 의류 + A 카테고리 간편 검색(결과내 재검색)을 수행할수 있다.