매핑

동적 매핑

정적 매핑

엘라스틱서치에서 매핑은 정적 매핑(static mapping)과 동적 매핑(dynamic mapping)으로 나눌 수 있습니다.

정적 매핑 (Static Mapping)

정의: 인덱스를 생성할 때 미리 매핑을 정의하는 방식입니다.특징:필드와 데이터 타입을 명시적으로 설정할 수 있습니다.데이터 구조가 고정되어 있고 변하지 않는 경우에 유용합니다.검색 성능을 최적화할 수 있습니다.예시: 인덱스를 생성할 때 JSON 형식으로 매핑을 정의하여 각 필드의 타입과 분석기를 설정합니다.

동적 매핑 (Dynamic Mapping)

정의: 문서가 인덱스에 추가될 때 자동으로 매핑을 생성하는 방식입니다.특징:새로운 필드가 추가될 때 자동으로 데이터 타입을 추론하여 매핑을 생성합니다.개발 초기 단계나 데이터 구조가 자주 변경되는 경우에 유용합니다.하지만, 잘못된 데이터 타입이 자동으로 설정될 수 있어 주의가 필요합니다.예시: 문서를 인덱스에 추가할 때 특정 필드가 처음 등장하면, 엘라스틱서치가 해당 필드의 데이터 타입을 자동으로 결정하여 매핑을 생성합니다.

이 두 가지 매핑 방법은 각각의 상황에 맞게 활용할 수 있으며, 정적 매핑은 성능 최적화에, 동적 매핑은 유연한 데이터 구조에 적합합니다.

매핑 파레미터

※ 디비링크 → 다른 서버의 디비의 스키마를 사용하고싶어서 사용한다.

copy_to

엘라스틱서치의 copy_to 파라미터는 특정 필드의 내용을 다른 필드로 복사하여 인덱싱하는 기능입니다. 이를 통해 여러 필드의 데이터를 하나의 필드에서 검색할 수 있도록 할 수 있습니다.

{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "copy_to": "combined"
      },
      "description": {
        "type": "text",
        "copy_to": "combined"
      },
      "combined": {
        "type": "text"
      }
    }
  }
}

알리아스를 사용하면 익스큐트 플랜이 바쁘다 → 클러스터 환경에서는 사용할 필요가 없다.