엘라스틱서치
-
Elasticsearch(with lucene) DocValue 에 대해서 알아보자elasticsearch 2021. 2. 27. 14:09
루씬은 검색을 효율적으로 하기위해 역색인 구조로 저장하는데 검색 시에는 유리한 구조이지만 정렬, 집계일 경우에는 그렇지 않다 그래서 그것을 보안하기 위해 DocValues란 구조를 사용한다 루씬은 4.0부터 컬럼 기반인 DocValues라는 개념을 도입했다 DocValues는 메모리를 효율적으로 사용하기 위해 jvm heap 메모리가 아닌 운영체제 os의 파일 시스템 캐시를 사용해 색인 시 디스크를, 검색시 시스템 캐시를 이용하는 디스크 기반 데이터 구조이다 즉 컬럼 기반의 구조를 채택해 힙 메모리 사용에 영향을 주지 않으며 힙 메모리를 사용하는 것과 같은 성능을 낸다 참고로 엘라스틱서치에서는 JVM 힙 메모리를 fielddata(uninverted)라고 부르는 특별한 구조로 사용 한다. 또한 JVM의 ..
-
세그먼트의 불변성 - 장점elasticsearch 2021. 2. 12. 12:55
세그먼트의 불변성으로 인해 많은 장점을 가져갈 수 있다 1. 불변이기 때문에 동시성을 신경 쓸 필요가 없다 스레드가 데이터를 점유한 상황일 때를 신경 쓸 필요가 없는 것이다 수정이 가능하다면 수정하는 동안 다른 스레드는 접근 불가능하게 한다거나 해서 퍼포먼스가 떨어질 수 있다 2. 엘라스틱 서치는 하나의 필드에 또 여러 개의 필드를 만들어서 사용한다 그런데 수정이 가능하다면 그 수많은 필드의 수많은 Terms를 찾아서 수정해줘야 한다 그리고 그걸 수정하는 동안 해당 데이터가 검색이 안될 수 있다 그래서 불변으로 해서 새로운 세그먼트를 추가해서 기존 데이터는 삭제 비트에 마크만 해주고 나중에 병합으로 백그라운드 스레드에서 처리해서 *리소스도 절감하고 검색도 빠르게 제공할 수 있다 3. 시스템 캐시를 적극 ..
-
elasticsearch aggregation(aggs) paging 하기elasticsearch 2020. 5. 7. 22:49
엘라스틱서치 어그리게이션 페이징인 6버젼에서 나온 api이다 https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search-aggregations-pipeline-bucket-sort-aggregation.html Bucket Sort Aggregation | Elasticsearch Reference [6.1] | Elastic The bucket_sort aggregation, like all pipeline aggregations, is executed after all other non-pipeline aggregations. This means the sorting only applies to whatever buckets are alre..