Mapping

Han Hanju·2023년 7월 19일
0

Elasticsearch

목록 보기
8/10
post-thumbnail

Mapping

  • Indexing 할 때 데이터 유형에 따른 데이터 타입 지정이 필요 => 맵핑
  • 일종의 데이터 모델링 (스키마 지정)
  • 맵핑을 설정하면 지정된 데이터타입으로 Indexing됨
  • 맵핑 지정을 하지 않으면 동적으로 Mapping이 됨 => 의도치 않은 문제 발생 가능
  • 잘못된 타입이 지정되면 수정할 수 없음
  • Document의 필드 속성을 정의 => 데이터 타입
  • 필드가 추가될 때마다 인덱스가 자동으로 업데이트
  • 기존에 정의된 필드에 각각 다른 타입의 데이터가 입력되면 이후의 데이터 색인 색성 실패
    • reindex, 인덱스 삭제 후 재생성
    • Dynamic mapping이 가능하지만 실무에서 사용하지 않는이유

Setting

  • 인덱스의 정보단위
    • setting
    • mapping
  • 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
      • 기본 캐시
      • 파일 시스템 캐시를 통해 디스크 데이터에 빠르게 접근

Metadata Field

  • Indexing 할 데이터를 어떻게 저장할지에 대한 설정들
    • _index: 인덱스의 이름
    • _type: document가 속한 맵핑의 타입정보
    • _id: document를 식별하는 키값
    • _source: document의 데이터, json
    • _field_names: null이 아닌 값을 포함하는 문서의 모든 필드
    • _routing: 특정 문서를 특정 샤드에 저장하기위해 사용
profile
Data Analytics Engineer

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기