Daylogs/DB
MySQL: Fulltext search에서 하이픈 캐릭터 사용하기
ohgyun
2017. 7. 27. 01:22
발생일: 2017.02.06
키워드: mysql, fulltext search, fulltext 검색, 하이픈, 대시, hypen, dash, -
문제:
MySQL의 BINARY MODE 의 Fulltext search에서 하이픈(hypen, 또는 대시, -) 캐릭터를 검색 대상에 포함하고 싶다.
어떻게 하면 될까?
해결책:
기본적으로 MySQL의 fulltext search는 letter, digits, ', _ 로 구성된 것을 단어로 본다.
-는 word break 역할을 해서, mysql에서는 -로 구분된 단어를 검색하는 것과 동일하게 동작한다.
따옴표로 묶어도 동일하다
"12-34"
"12 34"
"12+34"
"12~34"
모두 같은 결과를 리턴한다.
한 자리 검색어가 따옴표로 묶이는 경우, 검색어의 뒤에 있을 때에만 검색 대상이 된다.
"123 1" -> 123 1을 검색
"1 234" -> 1은 무시함. 234만 검색
"123 1" != "123 2" != "123 3"
"1 234" = "2 234" = "3 234"
Collation 파일을 직접 수정하는 방법이 있다고 하는데...
이건 아직 해보지 않았다. -_-
논의:
우린 AWS RDS를 쓰고 있는데, RDS에서는 Collation 파일의 수정은 허용하지 않는다.
1차 검색 결과를 코드 레벨에서 필터링하는 방법으로 우회했다.
참고:
반응형