본문 바로가기
Computer/Lucene

Lucene에서 텍스트 분석

by hexists 2015. 3. 9.

Lucene에서 텍스트 분석이 어떤식으로 이뤄지는지 정리한다.(3.x 기준)

 

  • 루씬에서는 색인(indexing)과 질의(query)를 위해 텍스트 분석을 한다.
    • 텍스트 분석은 Analyzer에서 한다.
    • 그리고, highlighting에도 Analyzer가 필요하다.
  • 색인과정의 텍스트 분석
    • IndexWriter 인스턴스 생성시 Analyzer 인스턴스를 지정해야 한다.
  • QueryParser
    • QueryParser 인스턴스 생성시 Analyzer 인스턴스를 지정해야 한다.
    • 이때, QueryParser에서는 문장전체가 아닌, 연산자 괄호, 범위, 와일드카드, 퍼지 검색 등의 표현식 문법을 제외하고 검색어로 판단되는 부분만 분석기에 전달한다.
  • 분석기 내부 구조
    • Analyzer 클래스 : 모든 분석기 클래스의 최상위 추상 클래스
      • 입력받은 text를 일련의 token으로 변환
        • 일련의 Token은 TokenStream 클래스로 표현
      • Analyzer를 상속받은 모든 분석기 클래스가 구현해야 하는 메소드
        • TokenStream 메소드 하나이다.

          Public TokenStream tokenStream(String fieldName, Reader reader)
  • 참고
    • (개정판)루씬 인 액션(2013), 마이클 맥캔클래스 등


'Computer > Lucene' 카테고리의 다른 글

Lucene 4.10.3 Demo  (0) 2015.03.04