-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[REFACTOR] 검색 기능 개선 #899
Comments
현재 방식현재 ngram full text parser를 이용해서 검색을 진행하고 있다. 이는 keyword와 검색을 하고자 하는 target의 단어들을 공백을 기준으로 n글자씩 쪼개는 방식이다.
위 방식을 선택한 이유는 다음과 같다. 하지만 이번에는 다른 문제가 발생하였다. keyword를 토큰으로 쪼개서 각 토큰별로 검색을 진행하다보니 예상하지 않은 결과까지 나오게 되었다. |
상황별 테스트자연어 모드
분석
불리언 모드 - 한글 검색
분석단어 자체로 검색을 진행하는 것 같음, 단어가 포함되기만 해도 검색이 됨 불리언 모드 - 영어 검색
분석불리언 모드도 ngram parser가 적용되는 것 같음. 검색 키워드인 list를 li, is, st로 쪼개서 검색을 진행하는데 i가 불용어라 li, is는 키워드로 인식되지 못함. 즉 st로만 검색이 되고 list, test가 결과에 나옴. 불용어를 포함하지 않은 키워드로 다시 한 번 테스트를 진행함 불리언 모드 - 영어 검색2
분석예상한대로 불용어가 없는 경우에는 키워드를 통째로 포함한 값만을 찾아옴. listtt에 대한 테스트도 진행함. 예상대로라면 li, is는 키워드에서 제거되기 때문에 sttt를 포함한 단어만 나올 것으로 예상됨 불리언 모드 - 영어 검색3
분석마찬가지로 불용어를 제외한 키워드를 통째로 포함한 값만을 찾아옴. 불리언 모드 - 영어 검색3(대소문자 구분)
분석대소문자를 구분하지 않고 가져오는 것으로 보임. 오히려 좋음. 불리언 모드 - 띄어쓰기 테스트
분석띄어쓰기를 하는 경우 띄어쓰기를 기준으로 단어를 분리함. 그 단어가 포함된 것들을 찾아오는데 순서는 무관하게 찾아옴 불리언 모드 - 띄어쓰기 테스트2
분석띄어쓰기를 기준으로 단어를 분리하고 그 단어를 포함한 결과를 찾아오지만, 반드시 모든 단어가 포함되어야 하는 것은 아닌 것 같음. 돼지고기, 맛집 두 키워드 중 하나만 포함해도 가져옴. 즉 or 연산이 적용됨. 불리언 모드 - 띄어쓰기 테스트3
분석앞에 불리언 모드 - 띄어쓰기 테스트3 (순서 검증)
분석순서는 보장되지 않음. 결론
단점
|
📌 어떤 기능을 리팩터링 하나요?
TO-DO
⏳ 예상 소요 시간 (예상 해결 날짜)
🔍 참고할만한 자료(선택)
페이지네이션 시 마지막 페이지 정보 제거에 대한 디스커션
The text was updated successfully, but these errors were encountered: