Elasticsearch _source field

JunMyung Lee·2023년 2월 27일
0

Elasticsearch

목록 보기
11/37

_source필드에는 색인 단계에서 전달된 원본 JSON 문서 본문이 포함되어 있다. _source 필드 자체는 색인되지 않으므로 검색할 수는 없지만 get 또는 search와 같은 fetch요청을 실행할 때, 반환될 수 있도록 저장된다.

검색 결과로 나온 원래의 JSON 데이터 모두는 _source에 압축하여 담겨서 반환된다. 특정 필드를 지정하면 _source에 담긴 데이터를 압축 해제한 다음 지정한 필드들만 뽑아서 반환한다.

압축과 해제의 단계가 있으므로 매우 느릴것이라고 생각하지만, 막상 이 과정에서 수행되는 fetch & compression / decompression은 매우 빠르게 수행된다.

_source 필드를 비활성화 하면 할 수 없는 기능 (document source missing 발생)

  • update
  • update_by_query
  • reindex
  • highlighting

_source필드는 색인 내에서 스토리지 오버헤드를 발생시킬 수 있으므로 비활성화를 할 수도 있다

PUT my-index-000001
{
  "mappings": {
    "_source": {
      "enabled": false
    }
  }
}

또는 특정 필드만 include, exclude할 수도 있다

PUT my-index-000001
{
  "mappings": {
    "_source": {
      "includes": [
        "date",
        "content"
      ],
      "excludes": [
        "title"
      ]
    }
  }
}

0개의 댓글