반응형
문서 인덱싱과 세그먼트 생성
[문서 1 인덱싱]
- 역 인덱스에 "정말", "멋진", "날씨", "입니다"라는 단어가 추가
- "정말"이라는 단어는 문서 1의 위치(예: 1번째 단어)로 저장
- 문서 1의 역 인덱스를 포함하는 세그먼트가 생성
[문서 2 인덱싱]
- 역 인덱스에 "오늘", "날씨", "정말", "좋습니다"라는 단어가 추가
- "정말"이라는 단어는 문서 2의 위치(예: 3번째 단어)로 저장
- 문서 2의 역 인덱스를 포함하는 또 다른 세그먼트가 생성
[문서 3 인덱싱]
- 역 인덱스에 "정말", "날씨", "좋다"라는 단어가 추가
- "정말"이라는 단어는 문서 3의 위치(예: 1번째 단어)로 저장
- 문서 3의 역 인덱스를 포함하는 또 다른 세그먼트가 생성
세그먼트 내의 데이터 구조
세그먼트 A:
- 단어 목록: "정말", "멋진", "날씨", "입니다"
- 역 인덱스:
- "정말" -> 문서 1 (위치: 1번째 단어)
- "멋진" -> 문서 1 (위치: 2번째 단어)
- "날씨" -> 문서 1 (위치: 3번째 단어)
- "입니다" -> 문서 1 (위치: 4번째 단어)
세그먼트 B:
- 단어 목록: "오늘", "날씨", "정말", "좋습니다"
- 역 인덱스:
- "오늘" -> 문서 2 (위치: 1번째 단어)
- "날씨" -> 문서 2 (위치: 2번째 단어)
- "정말" -> 문서 2 (위치: 3번째 단어)
- "좋습니다" -> 문서 2 (위치: 4번째 단어)
세그먼트 C:
- 단어 목록: "정말", "날씨", "좋다"
- 역 인덱스:
- "정말" -> 문서 3 (위치: 1번째 단어)
- "날씨" -> 문서 3 (위치: 2번째 단어)
- "좋다" -> 문서 3 (위치: 3번째 단어)
검색 요청 시 세그먼트의 역할
- 사용자가 "정말"이라는 단어를 검색
- 세그먼트 A, B, C 검색
- 역 인덱스 조회:
- 세그먼트 A: "정말" -> 문서 1
- 세그먼트 B: "정말" -> 문서 2
- 세그먼트 C: "정말" -> 문서 3
- 결과 반환
세그먼트 병합(Merge) 과정
- 세그먼트 A, B, C를 병합하여 세그먼트 D를 생성
- 세그먼트 D 생성:
- 세그먼트 A, B, C의 데이터를 통합하여 새로운 세그먼트 D 생성. 이 과정에서 중복된 단어("정말", "날씨" 등)는 한 번만 저장되며, 문서 ID와 위치 정보 추가
- 예: "정말" -> 문서 1 (위치: 1번째 단어), 문서 2 (위치: 3번째 단어), 문서 3 (위치: 1번째 단어)
- 세그먼트 A, B, C를 삭제하여 디스크 공간을 회수
반응형
'BE 공부 > 검색엔진' 카테고리의 다른 글
[OpenSearch] OpenSearch에서 JWT 인증 사용하기 (2) | 2024.09.02 |
---|---|
[ElasticSearch] 메모리, 디스크, 캐시 접근 과정 (0) | 2024.08.29 |
[ElasticSearch] 문자열 정렬 (0) | 2024.08.28 |
[ElasticSearch] 내부 구조와 동작 원리 (0) | 2024.07.12 |
[ElasticSearch] 개요 및 주요 기능 요약 (0) | 2024.07.12 |
댓글