Enabled 매핑 파라미터

Enabled 매핑 파라미터

OpenSearch는 제공하는 모든 필드를 인덱싱하려고 하지만, 때로는 필드를 검색 가능하게 만들지 않고 저장만 하고 싶을 수 있어요. enabled 파라미터를 false로 설정하면 필드 내용의 파싱을 건너뛰게 할 수 있어요.

출처: 문서

본문

OpenSearch는 제공하는 모든 필드를 인덱싱하려고 하지만, 때로는 필드를 검색 가능하게 만들지 않고 저장만 하고 싶을 수 있습니다. 예를 들어 OpenSearch를 웹 세션 저장소로 사용한다면 세션 ID와 마지막 업데이트 시간은 인덱싱하되, 세션 데이터 자체는 검색이나 집계가 필요 없으므로 인덱싱하지 않고 저장만 할 수 있습니다.

enabled 파라미터를 false로 설정하면 OpenSearch가 필드 내용의 파싱을 완전히 건너뜁니다. OpenSearch는 여전히 필드의 값을 _source 필드에 저장하지만 내용은 인덱싱하거나 파싱하지 않으므로 해당 필드는 검색 불가능합니다. 이 파라미터는 최상위 매핑 정의와 객체 필드에만 적용할 수 있습니다.

enabled 파라미터는 다음 값을 받습니다.

파라미터 설명
true (기본값) 필드가 파싱되고 인덱싱됩니다.
false 필드가 파싱되거나 인덱싱되지 않지만 _source 필드에서 여전히 검색할 수 있습니다.

기존 필드와 최상위 매핑 정의의 enabled 파라미터는 갱신할 수 없습니다.

객체 필드 비활성화

비활성화된 session_data 객체 필드가 있는 인덱스를 만듭니다. OpenSearch는 그 내용을 _source 필드에 저장하지만 인덱싱하거나 파싱하지 않습니다.

PUT /session_store
{
  "mappings": {
    "properties": {
      "user_id": {
        "type": "keyword"
      },
      "last_updated": {
        "type": "date"
      },
      "session_data": {
        "type": "object",
        "enabled": false
      }
    }
  }
}

비활성화된 필드에 다양한 유형의 데이터를 가진 문서들을 인덱싱합니다.

PUT /session_store/_doc/session_1
{
  "user_id": "johndoe",
  "session_data": {
    "user_preferences": {
      "theme_settings": ["dark_mode", "compact_layout", {"font_size": 14}]
    }
  },
  "last_updated": "2025-02-10T07:10:53"
}
PUT /session_store/_doc/session_2
{
  "user_id": "janedoe",
  "session_data": "none",
  "last_updated": "2025-02-10T07:12:48"
}

session_data 필드는 OpenSearch가 내용 파싱을 완전히 건너뛰므로 임의의 데이터를 받아들입니다. 객체 데이터와 비객체 데이터가 모두 허용됩니다.

전체 매핑 비활성화

어떤 필드도 인덱싱하지 않고 문서를 저장하려면 전체 매핑을 비활성화하세요.

PUT /raw_storage
{
  "mappings": {
    "enabled": false
  }
}

비활성화된 매핑에 문서를 인덱싱합니다.

PUT /raw_storage/_doc/doc_1
{
  "user_id": "janedoe",
  "session_data": {
    "user_preferences": {
      "theme_settings": ["dark_mode", "compact_layout", {"font_size": 14}]
    }
  },
  "last_updated": "2025-12-10T07:10:53"
}

문서가 저장되었는지 확인하려면 문서를 검색합니다.

GET /raw_storage/_doc/doc_1

응답은 문서가 성공적으로 저장되었고 _source 필드에서 검색할 수 있음을 보여 줍니다.

{
  "_index": "raw_storage",
  "_id": "doc_1",
  "_version": 1,
  "_seq_no": 0,
  "_primary_term": 1,
  "found": true,
  "_source": {
    "user_id": "janedoe",
    "session_data": {
      "user_preferences": {
        "theme_settings": [
          "dark_mode",
          "compact_layout",
          {
            "font_size": 14
          }
        ]
      }
    },
    "last_updated": "2025-12-10T07:10:53"
  }
}

필드가 추가되지 않았는지 매핑을 확인합니다.

GET /raw_storage/_mapping

문서는 _source에서 검색할 수 있지만 내용이 전혀 인덱싱되지 않으므로 매핑에 필드가 나타나지 않고 문서를 검색할 수 없습니다.

{
  "raw_storage": {
    "mappings": {
      "enabled": false
    }
  }
}

더 알아보기 (Learn more)