SH380 Logo
2025-03-31

Full-Text Index 활용

#CS

csgal-logo

1. 이론

2. 활용

-- Full-Text Index 생성
CREATE FULLTEXT INDEX idx_content ON posts(content);
​
-- Full-Text 검색
SELECT * FROM posts
WHERE MATCH(content) AGAINST('Java Spring' IN NATURAL LANGUAGE MODE);
​
-- Boolean 검색
SELECT * FROM posts
WHERE MATCH(content) AGAINST('+Java -Python' IN BOOLEAN MODE);

GET /posts/_search
{
  "query": {
    "match": {
      "content": "Java Spring"
    }
  }
}

3. 심화

full-text-index-graph

4. 면접 대비 핵심 포인트

5. 면접 연습

Q1. 일반 인덱스와 Full-Text Index 차이?
A: 일반 인덱스 → 정확한 값 검색에 적합, 부분 일치나 자연어 검색 비효율. Full-Text Index → 단어 단위 토큰화 + 역색인으로 빠른 텍스트 검색 가능.

Q2. Boolean 검색이란?
A: AND(+), OR, NOT(-) 등 논리 연산자를 이용해 검색 조건을 지정하는 방식. 포함/제외 단어 검색 가능.

Q3. LIKE '%keyword%'와 Full-Text Index 차이?
A: LIKE → 모든 행 스캔 → 느림 Full-Text Index → 역색인 사용 → 검색 속도 빠름, 대규모 데이터 최적화 가능

Q4. 검색 성능 최적화 방법은?
A: Stopwords 제거, n-gram 활용, 캐싱, 페이징, 전문 검색엔진 사용 등

Q5. RDBMS Full-Text vs Elasticsearch 장단점?
A: RDBMS → 구축 쉬움, 검색 복잡성 제한, 대용량 성능 낮음 Elasticsearch → 분산 처리, 자연어/형태소 검색 가능, 구축 복잡

6. 마무리

목록으로 돌아가기