eager global ordinals

# eager_global_ordinals란 무엇인가

Elastic공식 가이드에서 필요한 부분만 발췌하여 번역하였습니다.

# Global ordinals

  • Global ordinals 는 doc values 최상위에 존재하는 데이터 구조로 각 유니크한 term에 대해 증가하는 넘버를 부여하는 형태로 존재 합니다.

keywordtext 필드에 적용 가능 합니다.

  • 실제 doc values 에는 ordinals를 가지고 있는데 이는 세그먼트와 필드에 유니크 넘버를 부여한 것이고 Global ordinals는 그 위에 존재함으로써 segment ordinals와 global ordinals사이의 맵핑을 제공해 줍니다.

  • 이로 인해 segment ordinals를 사용하는 작업, 예를 들면 terms aggregation, join 등이 일어날때 실행 시간을 단축 시키는 역할을 합니다.

  • 이게 가능한 이유는 global ordinals만을 사용해서 shard level에서 aggregation을 수행하고, global ordinals를 real term으로 변환하는 과정은 final reduce phase (각 shard result를 합치는 phase)에서만 일어나기 때문 입니다.

# eager global ordinals

  • global ordinals는 default로 search-time 에 로드 됩니다. (indexing speed에 더 관심이 있는 경우)

  • eager_global_ordinals: true 를 field의 속성으로 주면 index의 refresh time 에 로드 시킵니다. (검색 시간이 더 중요한 경우)

즉 global_ordinals 를 로드시키는 시점이 search-time이나 refresh-time이냐에 따라서 eager_global_ordinals 옵션을 false 혹은 true로 설정하는 것 입니다.

Share