TIL

8.5 전문 검색 인덱스

전문 검색이란 문서 전체에 대한 분석과 검색을 위한 인덱싱 알고리즘이다. 문서의 내용 전체를 인덱스화해서 특정 키워드가 포함된 문서를 검색하는 것을 의미한다. InnoDB나 MyISAM 스토리지 엔진에서 제공하는 일반적인 B-Tree에선 전문 검색을 할 수 없다.

8.5.1 인덱스 알고리즘

어근 분석 알고리즘

MySQL 전문 검색 인덱스는 다음 두 과정을 거쳐 색인 작업이 수행된다.

n-gram 알고리즘

To To            
be be            
or or            
not no ot          
to to            
be be            
That Th ha at        
is is            
the th he          
question qu ue es st ti io on

불용어 변경 및 삭제

8.5.2 전문 검색 인덱스의 가용성

전문 검색 인덱스 사용하기

  1. doc_body 칼럼에 전문 검색 인덱스 생성
CREATE TABLE tb_test (
	doc_id INT,
	doc_body TEXT,
	PRIMARY KEY (doc_id),
	FULLTEXT KEY fx_docbody (doc_body) WITH PARSER ngram
) ENGINE=InnoDB;
  1. MATCH … AGAINST … 구문을 이용해 쿼리 작성
SELECT * FROM tb_test WHERE MATCH(doc_body) AGAINST('애플' IN BOOLEAN MODE);