Mapping
- Indexing 할 때 데이터 유형에 따른 데이터 타입 지정이 필요 => 맵핑
- 일종의 데이터 모델링 (스키마 지정)
- 맵핑을 설정하면 지정된 데이터타입으로 Indexing됨
- 맵핑 지정을 하지 않으면 동적으로 Mapping이 됨 => 의도치 않은 문제 발생 가능
- 잘못된 타입이 지정되면 수정할 수 없음
- Document의 필드 속성을 정의 => 데이터 타입
- 필드가 추가될 때마다 인덱스가 자동으로 업데이트
- 기존에 정의된 필드에 각각 다른 타입의 데이터가 입력되면 이후의 데이터 색인 색성 실패
- reindex, 인덱스 삭제 후 재생성
- Dynamic mapping이 가능하지만 실무에서 사용하지 않는이유
Setting
- 인덱스의 정보단위
- setting
- number_of_shards
- number_of_replicas
- 자연어처리에 사용
- analyzer
- tokenizer
- filter
Mapping 파라미터
- Indexing할 데이터를 어떻게 저장할지에 대한 설정등
- analyzer
- 지정한 분석기로 형태소 분석을 수행
- text타입은 기본적으로 사용해야함
- default: standard analyzer
- coerce: 자동 변환 허용여부
- ex) "35"가 integer에 들어온다면?
- fielddata
- 힙 공간에 생성하는 메모리캐시
- 메모리 부족현상 발생가능
- text타입을 aggregation하고 싶은 경우 사용
ex) tag cloud
- doc_values
- 기본 캐시
- 파일 시스템 캐시를 통해 디스크 데이터에 빠르게 접근
- Indexing 할 데이터를 어떻게 저장할지에 대한 설정들
- _index: 인덱스의 이름
- _type: document가 속한 맵핑의 타입정보
- _id: document를 식별하는 키값
- _source: document의 데이터, json
- _field_names: null이 아닌 값을 포함하는 문서의 모든 필드
- _routing: 특정 문서를 특정 샤드에 저장하기위해 사용
덕분에 좋은 정보 얻어갑니다, 감사합니다.