다중 검색어 정확도순 정렬 0 2 2,257

by apptention [Oracle 기초] 정렬 검색어 keyword [2018.04.24 17:24:24]


안녕하세요. sql을 공부하고있는 초보 개발자입니다.

간단하게 다중 검색어를 통한 결과를 표현하는 페이지를 구현했습니다.

여기서 검색어 정확도별 정렬을 하고싶습니다.

검색어 일치 갯수가 많은 순으로 정렬하고싶습니다.

힌트 좀 부탁드립니다!

	
		select 
			book_no			as no,
			book_title		as title,
			book_publisher	as publisher,
			book_price		as price,
			book_rent_count	as rentCount,
			book_status		as status,
			create_date		as createDate
		from 
			bookstore_book 
        <iterate prepend="where" open="(" close=")"  property="keywordList" conjunction="or" >
            book_title like '%' || #keywordList[]# || '%' 
        </iterate>
        
by 신이만든지기 [2018.04.24 18:25:26]
WITH T AS (
SELECT '호부호형 홍길동 한글소설' TEXT FROM DUAL UNION ALL
SELECT '홍길동 활빈당 호부호형 한글소설' TEXT FROM DUAL UNION ALL
SELECT '신사임당' TEXT FROM DUAL UNION ALL
SELECT '한글소설 홍길동' TEXT FROM DUAL
)
SELECT TEXT
     , REGEXP_COUNT(TEXT, '(홍길동|활빈당|호부호형|한글소설)') MATCH_CNT
  FROM T
 WHERE TEXT LIKE '%홍길동%'
    OR TEXT LIKE '%활빈당%'
    OR TEXT LIKE '%호부호형%'
    OR TEXT LIKE '%한글소설%'
-- WHERE REGEXP_COUNT(TEXT, '(홍길동|활빈당|호부호형|한글소설)') >= 1  -- 이렇게도 수정가능
 ORDER BY REGEXP_COUNT(TEXT, '(홍길동|활빈당|호부호형|한글소설)') DESC   -- 다이나믹 쿼리를 이용해 이 부분만 추가
   

 


by apptention [2018.04.24 18:41:55]

감사합니다! 당장 해봐야겠네요 ㅎㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입