본문 바로가기

Back-End/Lucene

Lucene Application Structure

* 색인(Indexing)

 - 원본 텍스트 분석 -> 사용자가 원하는 정보를 빠르게 찾아낼 수 있게 재구성하는 절차

 

검색 대상 텍스트 확보

  - 문서 수집기(Crawler, Spider)를 통해 대상 문서 수집

  - 문서 수집기 종류

    - Solr, Nutch, Grub, Heritrix, Droids, Aperture, Google Enterprise Connector Manager

 

Lucene 문서(Document) 생성

  - 여러개의 필드로 구성(제목, 본문, 요약, 저자, 링크 등)

  - 문서나 필드 단위로 중요도(Boost) 값 지정

 

문서 텍스트 분석

  - 텍스트를 토큰(Token) 단위로 분할

    * Token : 사람이 눈으로 보는 단어

  - 토큰 추출 작업 = 텍스트 분석 과정의 중요한 작업

 

색인에 문서 추가

 

* 검색(Searching)

  - 색인에 들어있는 토큰을 기준으로 문서 검색

  - 검색 품질 = 정확도(Precision)와 재현율(Recall)로 표현

    * 재현율 : 관련 문서를 얼마나 빼먹지 않고 찾아주는지

    * 정확도 : 사용자가 입력한 검색어와 관련 없는 문서가 얼마나 정확히 제거되는지

  - 단일 검색어, 다중 검색어, 문장 질의, 와일드카드(Wildcard) 질의, 퍼지(Fuzzy) 질의 지원

  - 결과 순위(Ranking), 정렬 기능 지원

 

검색 사용자 인터페이스

  - 검색어 Highlighting

 

검색 질의 생성

  - QueryParser(질의 분석 기능) 지원

  - Boolean 질의, 구문 질의, 와일드카드 질의 지원

 

질의로 검색

  - 순수 불리언 모델

    * 질의에 문서가 해당하는지 아닌지 판단

    * 별도 점수 계산 부분 없음 = 연관도 점수(Relevance Score) 없음 = 정렬된 결과 받을 수 없음

    * 해당되는 문서의 부분 집합을 뽑아내는 역할

  - 백터 공간 모델

    * 질의와 문서 모두 고차원 공간의 벡터로 표현

    * 벡터 간 거리 계산하여 문서와 질의 사이의 연관도, 유사도(Similarity) 계산

  - 확률 모델

    * 문서가 질의와 일치하는 확률 계산

 

결과 출력

 

관리 인터페이스 : 최초 문서 수집 대상 URL 지정, 수집 문서 전송 속도, 서버 복제 상태, 검색 관련 로그, 백업, 복원

 

분석 인터페이스 : 실행된 질의의 종류 별 빈도수, 연관도에 따른 질의, 필드 별 정렬 빈도수, 검색 시간, 초당 색인 문서 건수, 용량

 

시스템 확장

  - 시스템 장애를 대비하여 애플리케이션을 최소 2중으로 구성

  - 검색 대상 문서 양이 많은 경우 색인을 여러 개의 샤드(Shard)로 분리

    * 검색 시 전체 샤드에 질의 전송

    * 넘겨 받은 데이터는 하나로 묶어 출력

'Back-End > Lucene' 카테고리의 다른 글

Core Class  (0) 2020.06.23
About Lucene  (0) 2020.06.22