fielddata
-
Elasticsearch(with lucene) DocValue 에 대해서 알아보자elasticsearch 2021. 2. 27. 14:09
루씬은 검색을 효율적으로 하기위해 역색인 구조로 저장하는데 검색 시에는 유리한 구조이지만 정렬, 집계일 경우에는 그렇지 않다 그래서 그것을 보안하기 위해 DocValues란 구조를 사용한다 루씬은 4.0부터 컬럼 기반인 DocValues라는 개념을 도입했다 DocValues는 메모리를 효율적으로 사용하기 위해 jvm heap 메모리가 아닌 운영체제 os의 파일 시스템 캐시를 사용해 색인 시 디스크를, 검색시 시스템 캐시를 이용하는 디스크 기반 데이터 구조이다 즉 컬럼 기반의 구조를 채택해 힙 메모리 사용에 영향을 주지 않으며 힙 메모리를 사용하는 것과 같은 성능을 낸다 참고로 엘라스틱서치에서는 JVM 힙 메모리를 fielddata(uninverted)라고 부르는 특별한 구조로 사용 한다. 또한 JVM의 ..
-
elasticsearch(with lucene) field_data에 대해서 알아보자elasticsearch 2021. 2. 9. 11:04
예전에 무신사 es 서비스 성능 튜닝을 하기 위해 여러가지 점검을 하였는데 그 중 fielddata, doc_value, eager_global_ordinals에 정리해보려고 한다 doc_value와 eager_global_ordinals은 다음에 작성할 예정이며 오늘은 field_data에 정리해보려고 한다 루씬을 내부적으로 데이터를 역색인하여 저장하고 특정 query에 대해 관련 있는 문서를 얻기 위해서 만들어졌다 그런데 단순 질의뿐만 아니라 집계나 필드 기준으로 정렬하는 것에 대한 요구사항이 있었고 이런 요구사항을 해결하기위해 루씬은 역색인 된 데이터를 univerted하여 컬럼 중심 뷰를 만들게되었다 검색시점이나, close한 인덱스를 다시 open 하거나 할 때 등등 univerted(이것 또한..