Skip to content

루씬의 핵심 클래스

Yongho Choi edited this page Feb 13, 2017 · 1 revision

색인 관련 핵심 클래스

IndexWriter

  • 색인을 새로 생성하거나 기존 색인을 열고 문서를 추가/수정/삭제 기능 담당.
  • 색인 내용을 검색하거나 꺼내 볼 수는 없다.

Directory

  • 루씬의 색인을 저장하는 공간.

Analyzer

  • 본문이나 제목 등의 텍스트를 색인하기 전에 반드시 Analyzer를 거쳐 단어로 분리해야 한다.
  • 지정된 텍스트를 색인할 단위 단어로 분리하고 필요 없는 단어를 제거하는 등의 역할을 담당.
    • 루씬은 텍스트와 숫자만 다룰 수 있다.

Document

  • 개별 필드의 집합.
    • 가상의 문서
  • 문서 내부의 필드는 문서의 실제 내용이나 메타 정보를 담고 있다.
  • 루씬에서 색인하고 검색하려면 원본 문서에서 뽑아낸 텍스트를 루씬의 Field 클래스에 담아 루씬에 넘겨준다.

Field

  • 색인의 각 문서는 모두 두 개 이상의 각자 이름이 지정된 개별 필드로 구성.
    • Field 클래스로 표현
    • key-value 형태

검색 관련 핵심 클래스

IndexSearcher

  • 검색을 담당하는 클래스.
  • 색인을 읽기 전용으로 열어 사용한다.

Term

  • 검색 과정을 구성하는 가장 기본적인 단위.
    • key-value 형태
  • 객체는 루씬 내부적으로 자동 생성된다.
    • 검색 시점에는 Term 객체를 직접 생성해 TermQuery 질의에 사용할 수도 있다.

Query

  • 가장 최소한의 공통부분만 갖고 있는 최상위 질의 클래스.

TermQuery

  • 루씬에서 지원하는 질의 중 가장 기본적인 기능을 갖고 있다.
  • 특정 필드에 원하는 단어가 들어 있는 문서를 찾아낸다.

TopDocs

  • 단순히 검색 결과 중 최상위 N개의 문서에 대한 링크를 담고 있는 결과 클래스.
  • 결과마다 각 문서의 정수형 docID 값과 float형 점수를 담고 있다.
    • docID를 사용해 실제 문서를 읽어올 수 있다.