_source필드에는 색인 단계에서 전달된 원본 JSON 문서
본문이 포함되어 있다. _source 필드 자체는 색인되지 않으므로 검색할 수는 없지만 get
또는 search
와 같은 fetch
요청을 실행할 때, 반환될 수 있도록 저장된다.
검색 결과로 나온 원래의 JSON 데이터 모두는 _source에 압축하여 담겨서 반환된다. 특정 필드를 지정하면 _source에 담긴 데이터를 압축 해제한 다음 지정한 필드들만 뽑아서 반환한다.
압축과 해제의 단계가 있으므로 매우 느릴것이라고 생각하지만, 막상 이 과정에서 수행되는
fetch & compression / decompression
은 매우 빠르게 수행된다.
_source필드는 색인 내에서 스토리지 오버헤드를 발생시킬 수 있으므로 비활성화를 할 수도 있다
PUT my-index-000001
{
"mappings": {
"_source": {
"enabled": false
}
}
}
또는 특정 필드만 include, exclude할 수도 있다
PUT my-index-000001
{
"mappings": {
"_source": {
"includes": [
"date",
"content"
],
"excludes": [
"title"
]
}
}
}