fulltext 구현시 참고할 사항
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 1건 조회 4,494회 작성일 12-02-27 18:55본문
********* 메뉴얼대로 따라했는데 검색하지 못할때....
1. Mysq 4.X 버전 부터인가 match against를 통해서 fulltext를 지원하고 있는데,
utf-8로 데이터를 저장할 경우(euckr은 검색 불가능) 한글도 fulltext검색이 가능하다.
만약 euckr이라면 디비를 덤프하고 캐릭터셋 설정부분을 다음과 같이 수정하고 저장한 다음 다시 밀어넣으면 된다.
<<<<중략>>>
DEFAULT CHARSET=euckr => DEFAULT CHARSET=utf8
2. 한글로 fulltext를 할 때 제대로 되지 않는 문제가 발생해서 여기저기 알아 본 결과,
원인은 fulltext시에 최소 문자열 수에 걸려서 제대로 되지 않았던 것.
예를 들어 ‘한글’ 이라는 글자를 match(text) against(‘한글’)로 검색 할 경우 결과가 나오지 않는다.
해결방법은 my.ini파일을 열어서 [mysqld]아래 부분에
ft_min_word_len=2 라고 적은뒤 mysql을 재시작 한다. 이전 인덱스가 있을 경우에는
Repair table tbl_name 으로 인덱스를 다시 잡아줘야 한다.(라고 mysql에 적혀 있다.)
ft_min_word_len의 기본 값이 4이기 때문에 생긴 문제다.
참고로 jQuery로 한글을 처리할때도 무조건 UTF-8로 넘겨야한다.
댓글목록
오원장님의 댓글
오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일
FULLTEXT 인덱스 생성하기
CREATE FULLTEXT INDEX 인덱스명 ON 테이블명 (필드명1, 필드명2,,,,,);