Database

MariaDB SQL INDEX - CREATE/DROP/ALTER FULLTEXT INDEX

carrotweb 2022. 8. 15. 00:05
728x90
반응형

CREATE FULLTEXT INDEX Statement

Table에 FullText Index를 생성합니다.
자연어를 이용하여 INDEX를 생성하고 자연어를 이용하여 데이터를 검색할 수 있습니다.

 

Column FULLTEXT Index 생성 구문

CREATE FULLTEXT INDEX index_name ON table_name (column_name);

 

Multiple-Column FULLTEXT Index 생성 구문

CREATE FULLTEXT INDEX index_name ON table_name (column_name, column_name);

 

 

DROP INDEX Statement

Table에서 FullText Index를 삭제합니다.

 

FULLTEXT Index 삭제 구문

ALTER TABLE table_name DROP INDEX index_name;

 

 

ALTER TABLE Statement

Table에서 FullText Index를 생성하여 추가한다.

 

Column FULLTEXT Index 생성 구문

ALTER TABLE table_name ADD FULLTEXT index_name (column_name);

 

Multiple-Column FULLTEXT Index 생성 구문

ALTER TABLE table_name ADD FULLTEXT index_name (column_name, column_name);

 

 

SELECT Statement

Table에서 WHERE 절에 MATCH AGAINST 구문을 사용하여 Row를 선택합니다.

 

FULLTEXT MATCH AGAINST 구문

SELECT column_name, column_name
  FROM table_name
 WHERE MATCH (column_name, column_name) AGAINST (expressed [search_modifier]);

 

검색 모드는 NATURAL LANGUAGE MODE (자연어 모드)와 BOOLEAN MODE (블리언 모드)가 있습니다.

 

  • NATURAL LANGUAGE MODE (자연어 모드) : 검색할 문자열을 단어 단위로 분리하여 해당 단어가 포함되는 행을 찾습니다.
  • BOOLEAN MODE (블리언 모드) : 검색할 문자열을 단어 단위로 분리하여 해당 단어가 포함되는지 불포함되는지 검색 규칙에 따라 검색하고 결과를 TRUE / FALSE 형태로 처리하여 행을 찾습니다.

 

AGAINST 구문에 옵션을 설정하지 않으면 NATURAL LANGUAGE MODE (자연어 모드)로 처리됩니다.

 

 

MariaDB에 FULLTEXT INDEX 생성하기

-- 단일 FULLTEXT INDEX 생성
CREATE FULLTEXT INDEX IDX_BRD_CONTENT ON INT_BOARD_TB (BRD_CONTENT);

-- NATURAL LANGUAGE MODE
SELECT * FROM INT_BOARD_TB WHERE MATCH(BRD_CONTENT) AGAINST('테스트' IN NATURAL LANGUAGE MODE);

-- BOOLEAN MODE
SELECT * FROM INT_BOARD_TB WHERE MATCH(BRD_CONTENT) AGAINST('테스트' IN BOOLEAN MODE);

-- INDEX 제거
ALTER TABLE INT_BOARD_TB DROP INDEX IDX_BRD_CONTENT;
728x90
반응형