* 색인(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)로 분리
* 검색 시 전체 샤드에 질의 전송
* 넘겨 받은 데이터는 하나로 묶어 출력
'SearchEngine > Lucene' 카테고리의 다른 글
Core Class (0) | 2020.06.23 |
---|---|
About Lucene (0) | 2020.06.22 |