MySQL FULLTEXT 검색
FULLTEXT 을 사용한 이유
row1 | [java,linux,database,ajax,r,sql,reactjs] (순서없음)
row2 | [java,javascript,django,c#,c++,database,ajax,r,sql,reactjs] (순서없음)
row3 | [c] (순서없음)
row4 | [c++] (순서없음)
검색어 [java , c , c++] ( 순서 없음 , 개수 정해지지 않음 , list로 vue에서 보냄 )이게 모두 포함된 row를 모두 찾기
검색어가 몇개가 될지 모르는 상황에서 검색어를 ,(콤마)로 구분하여 하나씩 for문을 돌리는 것 보다 다른 방법을 찾아야 겠다고 생각함.
검색의 조건이 텍스트 포함 여부만 있는 것이 아니라
기간 검색 , 여러 칼럼에 대한 텍스트 검색이 함께 있어서 시간을 줄일 필요가 있었음..
1. 데이터 베이스 수정 -> index 생김
ALTER TABLE 프로젝트명 ADD FULLTEXT(컬럼명);
-
인덱스 안주면 에러남
Error Code: 1191. Can't find FULLTEXT index matching the column list 0.000 sec
2. 테이블형식은 MyISAM 이어야 한다는데
나는 그대로 InnoDB로 둬도 잘 된다. ( + charset은 utf8 )
3. 다행히 검색어에 한글이 없는데 한글이 있으면 다른 설정이 필요한 것 같다.
4. 특수문자는 검색되지 않는다. / 검색어가 3자이상이어야..검색이 되는 것 같다.
-> 데이터베이스에 검색에 필요한 컬럼을 저장할 때 특수문자를 치환해서 저장하고 (c++ -> cplusplus )
검색시에 특수문자를 치환해서 검색한다. (c++ -> cplusplus)
검색결과를 원래 데이터를 치환해서 return한다. (cplusplus -> c++)
if( project.getProject_dev_setting() != null || project.getProject_dev_setting() != "" ) { |
https://linkednest.net/share/jwlee/view/354
::: Share Yours ::: MySql Full text search 한글
[MySql] Full text search 한글0. mac local mysql shutdown 0.1. 명령어 sudo /usr/local/mysql/support-files/mysql.server stop 0.2. Result 0.3. References 0.3.1. http://stackoverflow.com/questions/100948/how-do-you-stop-mysql-on-a-mac-os-install
linkednest.net
https://interconnection.tistory.com/95
MySQL Full Text Search Index 사용하기
전문 검색(Full Text Search)은 검색 기능을 서비스에 도입하고 싶은 분들에게 필요한 기능입니다. 기존의 인덱스와 다른 방식의 인덱스입니다. MySQL의 B-Tree Index ( 보통 그냥 Index 라고 불림 ) : Index의 경..
interconnection.tistory.com
MySQL 풀 텍스트(FULLTEXT) 검색하기
이 글은 크몽 재능인, socurites님이 원고를 기고하셨습니다. MySQL은 % 연산자를 사용하여 LIKE 패턴 연산을 지원할 뿐만 아니라, 단어 또는 구문에 대한 검색을 지원하며 이를 풀 텍스트(FULLTEXT) 검색이라고 부른다. MySQL은 3가지 종류의 FULLTEXT 검색 방식을 지원한다. FULLTEXT 검색 방식 자연어 검색(natu…
kmongcom.wordpress.com