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
}
}
}