ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 05. 매핑 API
    BackEnd/elasticsearch 2021. 9. 19. 21:20
    반응형

    1. 매핑 인덱스 생성

    2. 매핑 확인

      이미 만들어진 매핑을 확인하려면 엘라스틱서치에서 제공하는 _mapping API를 사용할 수 있습니다.

    3. 매핑 파라미터

    옵션 설명
    analyzer 해당 필드의 데이터를 형태소 분석하겠다는 의미의 파라미터다. text 데이터 타입의 필드는 analyzer 매핑 파라미터를 기본적으로 사용해야 한다. (default : Standard Analyzer)
    normalizer term query 분석기를 사용하기 위해 사용된다. asciifolding과 같은 필터를 사용하면 cafe, Cafe,  Cafe' 등 같은 데이터로 인식되게 할 수 있다.
    boost 필드에 가중치(Weight)를 부여한다. 가중치에 따라 유사도 점수(_score)가 달라지기 때문에 boost 설정 시 검색 결과의 노출 순서에 영향을 준다. 만약 색인 시점에 설정하면 재색인하지 않는 이상 가중치 변경을 할 수 없기에 주의해서 사용해야 한다.
    (참고) 최신 엘라스틱서치는 색인 시 boost 설정을 할 수 없도록 바뀌었다.
    coerce 색인 시 자동 변환을 허용할지 여부를 설정하는 파라미터다.
      예) "10"과 같은 숫자 형태의 문자열을 integer 타입으로 형변환한다.
    copy_to 매핑 파라미터를 추가한 필드의 값을 지정한 필드로 복사한다. 또한 여러 개의 필드 데이터를 하나의 필드에 모아서 전체 검색 용도로 사용하기도 한다. (과거 _all 칼럼과 동일한 기능 제공)
    fielddata 엘라스틱서치가 힙 공간에 생성하는 메모리 캐시다. 최신 버전의 엘라스틱서치는 doc_values라는 새로운 형태의 캐시를 제공하고 있으며, text 타입의 필드를 제외한 모든 필드는 기본적으로 doc_values 캐시를 사용한다. fielddata는 메모리에 생성되는 캐시이기 때문에 최소한으로만 사용해야 한다는 사실에 주의해야 한다.
    doc_values 엘라스틱서치에서 사용하는 기본 캐시다. 힙 사용에 대한 부담을 없애고 운영체제의 파일 시스템 캐시를 통해 디스크에 있는 데이터에 빠르게 접근할 수 있다.

    필드를 정렬, 집계할 필요가 없고 스크립트에서 필드 값에 액세스할 필요가 없다면 디스크 공간을 절약하기 위해 doc_values를 비활성화할 수도 있다. 한 번 비활성화된 필드는 인덱스를 재색인하지 않는 한 변경이 불가능하다.
    dynamic 매핑에 필드를 추가할 때 동적으로 생성할지, 않을지를 결정한다.
      1) true : 새로 추가되는 필드를 매핑에 추가한다.
      2) false : 새로 추가되는 필드를 무시한다. 해당 필드는 검색할 수 없지만 _source에는 표시된다.
      3) strict : 새로운 필드가 감지되면 예외가 발생하고 문서 자체가 색인되지 않는다.
    enabled 검색 결과에는 포함하지만 색인은 하고 싶지 않은 경우도 있다. 메타 성격의 데이터가 그렇다.
    format 날짜/시간을 문자열로 표시한다.
      1) basic_date : yyyyMMdd
      2) basic_date_time : yyyyMMdd'T'
                                HHmmss.SSSZ
      3) basic_time : HHmmss.SSS
      4) date/strict_date : yyyy-MM-dd
      5) date_hour_minute_second/       : yyyy-MM-dd'T'
         strict_date_hour_minute_second   HH:mm:ss.
      6) date_hour_minute_second_millis/      : yyyy-MM-dd'T'
         strict_date_hour_minute_second_millis  HH:mm:ss.SSS.
      7) date_time/strict_date_time : yyyy-MM-dd'T'
                                              HH:mm:ss.SSSZZ
    ignore_above 필드에 저장되는 문자열이 지정한 크기를 넘어서면 빈 값으로 색인한다.
    ignore_malformed 엘라스틱서치에서는 잘못된 데이터 타입을 색인하려고 하면 예외가 발생하고 해당 문서 전체가 색인되지 않는다. 이 매핑 파라미터를 사용하면 해당 필드만 무시하고 문서는 색인할 수 있다.
    index 필드값을 색인할지 결정한다. (default : true)
    fields 다중 필드(multi_field)를 설정할 수 있는 옵션이다. 필드 안에 또 다른 필드의 정보를 추가할 수 있어 같은 string 값을 각각 다른 분석기로 처리하도록 설정할 수 있다.
    norms 문서의 _score 값 계산에 필요한 정규화 인수를 사용할지 여부를 설정한다. (default : true)
    null_value null_value 설정 시 문서의 값이 null이더라도 필드를 생성하고 그에 해당하는 값으로 저장한다.
    position_increment_gap 배열(Array) 형태의 데이터를 색인할 때 검색의 정확도를 높이기 위해 제공하는 옵션이다. 필드 데이터 중 단어와 단어 사이의 간격(slop)을 허용할지를 설정한다.
    properties 오브젝트(Object) 타입이나 중첩(Nested) 타입의 스키마를 정의할 때 사용되는 옵션으로 필드의 타입을 매핑한다. 오브젝트 필드 및 중첩필드에는 properties라는 서브 필드가 있다.
    search_analyzer 검색 시 사용할 분석기를 별도로 지정한다.
    (일반적으로 색인과 검색 시 같은 분석기를 사용한다.)
    similarity 유사도 측정 알고리즘을 지정한다. (default : BM25)
    store 필드에 값을 저장해 검색 결과에 값을 포함하기 위한 매핑 파라미터다.
    term_vector 루씬에서 분석된 용어의 정보를 포함할지 여부를 결정하는 매핑 파라미터다.
      1) no : 텀벡터를 저장하지 않는다.
      2) yes : 필드와 용어만 저장한다.
      3) with_positions : 용어, 용어의 시작과 끝 위치를 저장한다.
      4) with_offsets : 용어, 문자 오프셋을 저장한다.
      5) with_positions_offsets : 용어, 용어의 시작과 끝 위치, 문자 오프셋을 모두 저장한다.

     

    반응형

    'BackEnd > elasticsearch' 카테고리의 다른 글

    07. 데이터 타입(Data Type)  (0) 2021.09.20
    06. 메타 필드(Meta Fields)  (0) 2021.09.19
    04. 용어  (0) 2021.09.19
    03. 키바나 설치(kibana)  (0) 2021.09.18
    02. 엘라스틱서치 설치  (0) 2021.09.18

    댓글

Designed by Tistory.