Lucene Segment
- 루씬 세그먼트
- Inverted Index, Doc Value, 원본 문서 등을 저장하고 있는 단위 파일
- Inverted Index?
- RDBMS를 데이터를 테이블형태로 저장한다
- id: 1, value : name
- 검색엔진에서는 inverted index라는 구조로 저장
- token: name, doc id : 1, 2
- Invertered Index를 하나의 거대한 파일이 아니라 여러개의 작은 파일 단위로 저장
- 입벽 버퍼가 가득차거나, 1초마다 하나씩 생성
- 한번 생성된 세그먼트는 변경이 되지 않는다.
- 문서 변경/삭제 과정
- update는 존재하지 않음, delete & insert
- 삭제는 삭제되었다는 표시만 하고 검색에서 제외
- 세그먼트 병합 과정에서 삭제된 문서를 빼고 나머지 문서들을 모아 새로운 새그먼트를 만든다.
- 세그먼트 병합의 비용은 크다
- 디스크 I/O
오래된 세그먼트는 크기가 크고, 최근에 생성된 세그먼트를 상대적으로 크기가 작다.
오래된 문서를 삭제하는 것은 더욱 비용이 크다
날짜별로 저장 영역(인덱스)를 구분하는 것이 바람직하다.
여러 인덱스를 묶어서 검색할수 있는 멀티 테넌시를 지원함.
ElasticSearch Tip
- 로그는 가능하면 날짜별로 나눠서 저장
- 원본 데이터는 항상 잘가지고 있어야 된다. 새롭게 인덱스를 만들어야 되는 경우가 많다.
- 세그먼트 병합은 사용하지 않는 시간에
'Database > Elaticsearch' 카테고리의 다른 글
Elastic Search (0) | 2018.12.12 |
---|---|
로그성 데이터의 날짜 기반의 index 설계 (0) | 2018.05.24 |
term aggregation 기능 사용하기 (0) | 2018.05.24 |
_source를 이용하여 원하는 필드만 선택하기 (0) | 2018.05.24 |
Elastic Search Nested Query (0) | 2018.05.22 |