(ElasticSearch) 원래의 내용을 저장하는 _source

_source는 원본 도큐먼트를 저장할지 또는 그렇지 않을지를 true 또는 false로 지정할 수 있다.
기본값은 true인데 대부분의 경우 그대로 사용하는 것이 좋다.

왜냐하면 변경 API를 이용한다던지 하이라이트 (Highlighting)구현 역시 _source가필요하다


원본 도큐먼트의 특정 필드만 반환하기


GET get-together/_doc/1?pretty?fields=name

fields파라미터로 제공할 수 있다.

_source를 저장할 떄, 엘라스틱 서치는 여기에서 필수 필드를 가져온다.
Store옵션을 yes로 설정한 개별필드만 저장할 수 있다.
예를들어 name필드만 저장하려면 매핑은 다음과 같다.


_source전제를 조회해서 특정 필드를 추출하는 것보다 단일 저장 필드를 조회하는 것이 더 빠르므로, 특히 큰 도큐먼트를 갖고 있을 때, 엘라스틱서치에게 특정 필드만 요청하는 것이 더 유용할 수 있다.


* _source의 기능을 false할 시 문제점



  • update, update_by_query그리고 reindex API를 사용할 수 없다.
  • highlighting 기능을 사용할 수 없음
  • reindex및 mapping, analysis 바꾸기 불가, major버전으로 인덱스 업그레이드 불가
  • 쿼리 또는 aggregation의 디버그 불가

만약 디스크 공간이 문제라면 _source를 false하기 보다는 compression level을 고려해보자


댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬