[Lucene] 3장. 텍스트 분석

Lucene 기초 다지기

출처 : 실전비급 아파치 루씬 7: 엘라스틱서치 검색 엔진을 향한 첫걸음

목차

  1. 루씬의 이해
  2. 텍스트 색인
  3. 텍스트 분석
  4. 텍스트 검색과 질의 방법
  5. 루씬의 고급 검색
  6. 루씬 동작 방식 이해하기
  7. 다양한 확장 기능

텍스트 분석

1. 분석기 이해

1) 색인 과정에서의 분석

2) 검색에서의 분석

3) 분석 과정

Analyzer 클래스는 인덱싱 및 검색 프로세스에서 사용하는 텍스트를 분석 한다.

  1. 분석기 : 텍스트 분석 결과로 TokenStream 객체를 생성
  2. 토큰화 과정 : 토크나이저와 토큰 필터를 사용해 텍스트를 의미가 있는 단어인 토큰 으로 나눈다
    • 하는 일
      • 동사원형화 (Stemming) : likes → like
      • 불용어 필터링 (Stop Words Filtering) : the, and, a와 같은 불용어 필터링
      • 텍스트 정규화 : 악센트 같은 기타 문자 제거
      • 동의어 확장 : 해당 단어의 동의어를 포함한 문자로 함께 조회하도록…
    • 토크나이저 : 텍스트를 토큰으로 분할해 쪼갠다.
    • 토큰 필터 : 토크나이저로부터 만들어진 토큰을 토큰 필터로 변형해 텀 생성
      • [주의] 토큰 필터에 따라 단어가 변형되므로 토큰 필터의 적용 순서가 결과에 영향을 미침



2. 문장을 음절로 분석하기

1) TokenStream 클래스

2) AttributeSource 클래스

3) Tokenizer 클래스

4) TokenFilter 클래스

5) Analyzer 클래스



3. 루씬의 기본 분석기

1) StandardAnalyzer

2) SimpleAnalyzer

3) WhitespaceAnalyzer

4) StopAnalyzer

5) KeywordAnalyzer



4. 확장 분석기

1) 동의어 처리

2) N-Gram 분석

3) 언어별 형태소 분석기