본문 바로가기
WIKI 기술 지식 베이스

Transform string fields to text/keyword

원문 보기 위키 갱신

출처: 문서

본문

string 필드를 text/keyword로 변환하기

이전 버전의 Elasticsearch에서는 string이 기본 텍스트 필드 타입으로 사용됐어요. 최신 Elasticsearch와 OpenSearch에서는 대신 text와 keyword를 사용해요. Migration Assistant는 메타데이터 마이그레이션 중에 레거시 string 필드를 최신 text 또는 keyword 매핑으로 자동 변환해 줘요.

내장 변환 동작

Migration Assistant는 원본 string 필드가 어떻게 설정됐는지에 따라 대상 필드 타입을 선택해요:

  • 분석(analyzed) 동작으로 설정된 string은 text가 돼요.
  • 비분석(non-analyzed) 또는 정확히 일치(exact-match) 동작으로 설정된 string은 keyword가 돼요.

이 변환은 필요한 경우 호환되지 않는 레거시 매핑 속성도 제거하거나 정규화해요.

string 필드 식별하기

소스에서 string 필드를 사용하는지 확인하려면 다음 명령어를 실행해 보세요:

console clusters curl source /_mapping

{% include copy.html %}

소스 매핑에 "type":"string"이 포함되어 있다면 이 내장 변환이 적용될 수 있어요.

마이그레이션 후 검증

메타데이터 마이그레이션 후에는 대상 매핑을 확인해 보세요:

console clusters curl target /your-index/_mapping
workflow show

{% include copy.html %}

그런 다음 해당 필드에 의존하는 애플리케이션 동작을 검증하세요. 특히 다음 항목을 확인해 보세요:

  • Term 쿼리
  • 집계(aggregation)
  • 정렬
  • 대소문자를 구분하는 정확히 일치(exact-match) 로직

커스텀 트랜스포머

내장 string 변환이 애플리케이션의 의미(semantics)를 충분히 처리하지 못한다면 커스텀 필드 타입 트랜스포머를 사용하세요. 예를 들어 다음과 같은 경우예요:

  • 커스텀 멀티 필드 동작이 필요할 때
  • 동시에 필드 이름 변경도 하고 싶을 때
  • 필드 속성에 대한 특수한 정리가 필요할 때

더 알아보기 (Learn more)