풀텍스트 검색으로 DB에서 식당을 검색해서 조회하는 api를 만들었는데 이상하게 결과수가 너무 적게 나왔다.
알아보니 FULLTEXT 인덱스를 검색하는 글자수에 대한 최소값이 있었기 때문이었다.
InnoDB 검색 인덱스의 경우 기본값은 innodb_ft_min_token_size=3
MyISAM 검색 인덱스의 경우 기본값은 ft_min_word_len=4 이다.
확인하는 명령은 다음과 같다.
SHOW VARIABLES LIKE 'innodb_ft_min_token_size';
SHOW VARIABLES LIKE 'ft_min_word_len';
ㄱMySQL의 my.ini를 수정해주면 된다는데
나 같은 경우는 AWS의 RDS를 사용중이기 때문에 AWS RDS 콘솔에서 수정해줘야 한다.
먼저 RDS 콘솔에서 파라미터그룹으로 들어간다.
default.mysql8.0 그룹이 하나 있을텐데 이것은 수정할 수 없는 그룹이므로 새로운 파라미터 그룹을 생성해준다.
새로운 파라미터 그룹에 있는 innodb_ft_min_token_size과 ft_min_word_len 값을 2로 변경해준다.
그리고 데이터베이스 > 수정에 들어가서 옵션 항목에 있는 파라미터 그룹을 변경해준다.
변경 한 후에 데이터베이스를 재부팅 해줘야 적용된다.
적용이 되었으면 풀텍스트 인덱싱을 다시 해준다.
이제 2글자로도 검색이 잘 될 것이다.
'MySQL' 카테고리의 다른 글
MySQL - FULLTEXT Index 사용으로 검색 성능 높이기 (0) | 2022.12.11 |
---|---|
MySQL Workbench 다중 컬럼 Unique 설정하기 (0) | 2022.12.11 |
MySQL - null을 다른 값으로 대체하는 방법. ifnull( ) (0) | 2022.12.11 |
MySQL Workbench - foreign key로 연결되어 있는 데이터 삭제 (0) | 2022.12.10 |
MySQL - 두 개 이상의 테이블을 연결하기 join, left join (0) | 2022.12.09 |