Open HyunjinKIM-Chloe opened 3 years ago
Must have:
Not in scope:
Milestones and deadlines 1st Deploy (07.10)
지역 + 캠핑장명 + 여러개 태그 검색
- 쿼리 질의 전 서버 단에서 태그 리스트와 대조하여 캠핑장명인지 태그인지 구분하는 코드가 있어야 함.
- 태그들을 입력했을 경우, 어떤 컬럼과 대응되는지 대조하는 코드가 있어야 함.
ex) #경기, #산골, #온수잘나오는, #자연/힐링
- SQL
select * from place where content_id in( select content_id from search where addr like '%경기%' or place_name like '%산골%' or (parking_car_s=1 or natural_m=1) ) order by content_id asc;
sub_query = session_.query(model_search.content_id).filter(model_search.addr.like(area) | model_search.place_name.like(place_keyword) | tag_query).subquery() main_query = session_.query(model_place).filter(model_place.content_id.in_(sub_query)).order_by(model_place.content_id.asc()).all()
07.02 검색 쿼리 개선 완료 지역 + 캠핑장명 + 태그 질의 시 다음 우선순위에 따라 결과 노출
ex) #경기, #산골, #차대기편한, #자연/힐링
- SQL
select * from place where content_id in( select content_id from search where addr like '%경기%' or place_name like '%산골%' or (parking_s=1 or nature_m=1)) order by (case when place_name like '%산골%' then 1 when addr like '%경기%' then 2 else 3 end);
sub_query = session_.query(model_search.content_id).filter(model_search.addr.like(area) | model_search.place_name.like(place_keyword) | tag_query).subquery()
main_query = session_.query(model_place).filter(model_place.content_id.in_(sub_query)).order_by( case( (model_place.place_name.like(place_keyword), 1), (model_place.addr.like(area), 2), else_=3 ) ).limit(Config.LIMIT).all()
추가 개선 사항
Issue
To-do