-
엘라스틱 서치와 루씬 요약공부하기/엘라스틱서치 2024. 2. 12. 18:44
루씬 : 문서를 색인하고 검색하는 라이브러리
- 루씬에서 검색하려면 먼저 파일을 열어야한다.
- 색인이 완료된 문서만 검색할 수 있다.
세그먼트
- 디스크에 기록된 파일들이 모인 단위
- 루씬의 검색 대상
- 불변( immutable ) 데이터로 구성돼 있다.
- 새 문서는 새 세그먼트로 생성된다.
- 문서를 update,delete 하는 경우 세그먼트의 삭제 플래그를 표시하고 새 세그먼트를 생성한다.
- 여러 세그먼트가 모이ㅏ면 하나의 루씬 인덱스가 된다.
루씬 flush
-> 시스템의 페이지 캐시에 데이터를 넘겨주는 것까지만 보장할 뿐 디스크에 파일이 실제로 기록되는 것까지 보장하지 않습니다.
과정 : 문서 색인 요청 -> 문서 분석 -> 역색인 생성 -> 메모리 버퍼에 저장 ->디스크 flush
루씬 commit
-> 시스템 콜을 통해 주기적으로 커널 시스템의 페이지 캐시의 내용과 디스크에 기록된 내용의 싱크를 맞추는 작업을 수행
과정 : 인메모리 버퍼 -> 루씬 flush -> 세그먼트 생성 -> 루씬 commit
엘라스틱서치 샤드
- 루씬 인덱스 하나를 래핑한 단위
- 엘라스틱서치 샤드 여러개가 모이면 엘라스틱서치 인덱스가 된다.
- 엘라스틱서치 검색 요청이 오면 각 샤드를 검색한 뒤 그결과를 모아 병합하여 응답
translog
- 엘라스틱서치 샤드는 모든 작업마다 translog라는 로그를 남긴다.
- translog 기록까지 끝난 이후에야 작업 요청이 승인된다.
- 장애가 발생한 경우 translog 기록과 루씬 commit을 비교하여 누락된 내용을 복구한다.
- 엘라스틱서치 flush는 commit을 수행하고 새로운 translog를 만드는 작업이다.
- 엘라스틱서치 flush가 백그라운드에서 주기적으로 수행되며 translog의 크기를 적잘한 수준으로 유지한다.
'공부하기 > 엘라스틱서치' 카테고리의 다른 글
엘라스틱서치 애널라이저, 토크나이저, 노멀라이저 (0) 2024.02.13 엘라스틱서치 text, keyword 타입 (2) 2024.02.12 elasticsearch 8.4.2 이론 및 실습 (0) 2024.02.12 mac m1 키바나 8.4.2 설치 (0) 2024.02.12 mac m1 엘라스틱서치 설치 및 실행 (0) 2024.02.12