2021.02.13~ 16기록장
ToDo
- n-gram 인덱스 적용, 성능 테스트
- 회원 탈퇴
Done
- n-gram 인덱스 적용, 성능 테스트
Weekly goal
- 사이드 api 개발
- 책 읽기
- 도커, 쿠버, 밋업 준비. 서버 터짐
n-gram
전문 검색 등을 할 때 항상 생각했던 것은 일라스틱 서치였습니다.
그런데 실서버를 운영하다 보니 서버의 비용을 생각할 수밖에 없었다.
돈은 최대한 아끼고 싶고 요구 사항은 맞춰야 하기에 또 성능까지 잡고 싶기에 더 찾아보니..
mysql의 n-gram을 찾게 되었다. token으로 잘라서 인덱스를 만드는 방법인데 성능도 잘 나오고 좋다.
인덱스의 크기가 좀 커지는 단점이 있지만.
또 생각해야 하는 점은 stopWord가 포함되면 검색이 안 되는 점이 있다.
token의 크기가 2이고 "a, b"가 content일 때 stopWord가 , 이면 "a, " "b, "는 검색이 되지 않는다.
stopWord가 포함되면 검색이 안된다는 말이다.
boolean mode와 language mode가 있는데 둘은 같지만 boolean mode는 추가 적으로 검색 시에 조건을 더 넣을 수 있다.
MySQL FullText Search 전문검색 기능 (2) - N-gram - MeCab (은전한닢)
hoing.io
MySQL :: MySQL 5.7 Reference Manual :: 12.10.8 ngram Full-Text Parser
12.10.8 ngram Full-Text Parser The built-in MySQL full-text parser uses the white space between words as a delimiter to determine where words begin and end, which is a limitation when working with ideographic languages that do not use word delimiters. To
dev.mysql.com
[Mysql] 게시판 검색 FULLTEXT with N-GRAM 전문 검색 최적화 (#스터디)
검색 기능이야 말로 없어서는 안될 필수적인 요소이다. 구글,네이버,다음 과 같은 대규모 검색 포털사이트 ...
blog.naver.com
JPA Order by subquery
jpa에서 ordery by에 특정 칼럼의 count를 도입해야 하는 경우가 있었다.
간단하게 가능하다.