매핑
동적 매핑
정적 매핑
엘라스틱서치에서 매핑은 정적 매핑(static mapping)과 동적 매핑(dynamic mapping)으로 나눌 수 있습니다.
정의: 인덱스를 생성할 때 미리 매핑을 정의하는 방식입니다.특징:필드와 데이터 타입을 명시적으로 설정할 수 있습니다.데이터 구조가 고정되어 있고 변하지 않는 경우에 유용합니다.검색 성능을 최적화할 수 있습니다.예시: 인덱스를 생성할 때 JSON 형식으로 매핑을 정의하여 각 필드의 타입과 분석기를 설정합니다.
정의: 문서가 인덱스에 추가될 때 자동으로 매핑을 생성하는 방식입니다.특징:새로운 필드가 추가될 때 자동으로 데이터 타입을 추론하여 매핑을 생성합니다.개발 초기 단계나 데이터 구조가 자주 변경되는 경우에 유용합니다.하지만, 잘못된 데이터 타입이 자동으로 설정될 수 있어 주의가 필요합니다.예시: 문서를 인덱스에 추가할 때 특정 필드가 처음 등장하면, 엘라스틱서치가 해당 필드의 데이터 타입을 자동으로 결정하여 매핑을 생성합니다.
이 두 가지 매핑 방법은 각각의 상황에 맞게 활용할 수 있으며, 정적 매핑은 성능 최적화에, 동적 매핑은 유연한 데이터 구조에 적합합니다.
※ 디비링크 → 다른 서버의 디비의 스키마를 사용하고싶어서 사용한다.
copy_to
엘라스틱서치의 copy_to
파라미터는 특정 필드의 내용을 다른 필드로 복사하여 인덱싱하는 기능입니다. 이를 통해 여러 필드의 데이터를 하나의 필드에서 검색할 수 있도록 할 수 있습니다.
{
"mappings": {
"properties": {
"title": {
"type": "text",
"copy_to": "combined"
},
"description": {
"type": "text",
"copy_to": "combined"
},
"combined": {
"type": "text"
}
}
}
}
알리아스를 사용하면 익스큐트 플랜이 바쁘다 → 클러스터 환경에서는 사용할 필요가 없다.