검색은 범위를 점점 좁혀가며 원하는 문서를 찾아가는 과정입니다.
- 검색필터 : 수많은 아이템중 필요한 아이템 컬렉션으로 줄이기 위한 검색 옵션
- 키워드검색 : 제공되는 필터만으로는 검색 결과를 줄이는것에 한계가 있다. 키워드 검색은 쿼리 검색으로 간주할수 있다.
- 검색결과 : 검색 필터와 키워드검색 조합에 의해 반환된 아이템 컬렉션
- 검색내 재검색 : 검색 결과를 줄여주는 Tip(Summay)를 제공함으로 원하는 범위로 줄일수 있는 기능을제공 ( 키워드 → 필터A(카테고리) → 필터B(가격범위한정)
- 검색결과 오더순서 : 검색 결과의 정렬 즉 첫번째아이템이 검색결과에의한 추천 아이템으로 간주할수 있다.
검색 옵션(필터)
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 카테고리 간편 검색(결과내 재검색)을 수행할수 있다.