검색엔진/ElasticSearch

Lucene이란?

ZzangHo 2022. 2. 9. 15:22
728x90

Lucene(루씬)이란?

  • 오픈소스 기반의 라이브러리
  • 검색 엔진의 기본 기능인 색인, 검색, 형태소 분석을 제공

 

Lucene기반의 대표적인 검색엔진

  • ElasticSearch
  • Solr

 

Lucene의 기본개념

  • 인덱스(Index)
  • 문서(Document)
  • 필드(Field)
  • 용어(Term)
Term < Field < Document < Index 와 같은 각 단위의 집합 구조

 

색인

IndexWriter가 IndexFile을 만드는 과정
  • 수정이 불가능한 Immutable Type(불변형)
  • 여러개로 생성 된 Segments 파일들을 Merge라는 작업을 통해 하나의 색인 파일로 만드는 과정이 필요
  • 하나의 Index는 하나의 IndexerWriter로 구성

색인 파일에 대한 루씬 참고자료

https://lucene.apache.org/core/9_0_0/core/org/apache/lucene/codecs/lucene90/package-summary.html#package.description

 

검색

IndexWriter로 색인 후 IndexSearch로 검색하는 과정
  • IndexSearch는 IndexReader를 통해 검색 수행을 함
  • 하나의 Index에는 Segment 별로 N개의 LeafReader가 존재

 

형태소 분석

입력 받은 문자열에서 형태소를 분리하는 과정