Skip to content

Commit

Permalink
Merge pull request #31 from mainmethod0126/elasticsearch-solo-system-…
Browse files Browse the repository at this point in the history
…to-db-and-general-system-change-db-selection-process

엘라스틱 서치 캐싱 포스팅 수정
  • Loading branch information
mainmethod0126 authored Apr 19, 2024
2 parents 3a69b5c + bf3735b commit 0e99eca
Showing 1 changed file with 6 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -280,17 +280,17 @@ GET logs-*/_search

## 필드 데이터 캐시 (Field Data Cache)

`text field에 대해서 집계, 정렬 시 필드 데이터를 전부 캐싱한다`
`집계, 정렬 시 필드 데이터를 전부 캐싱한다`

검색은 `"어떤 문서가 이 키워드를 포함하는지가 궁금"` 하지만
집계와 정렬은 `"이 문서에서 이 field의 값이 무엇인지"` 가 궁금하기 때문에
역인덱스 정보가 아닌 docmuent를 key로 value에 field 정보를 담은 데이터 구조가 필요하다.

즉 역인덱스가 아닌 일반적인 인덱스(RDB의 그것) 방식이 필요하다 이를 `FieldData` 라고 하는데,
이를 캐싱해놓는게 `필드 데이터 캐시`
즉 역인덱스가 아닌 일반적인 인덱스(RDB의 그것) 방식이 필요하다 이를 `fielddata` 라고 한다.

`text field` 의 경우 `FieldData` 를 사용하는데 무지막지하게 `메모리`를 쓰기 때문에 `기본값은 false(비활성)다`
`keyword field` 의 경우는 `doc_values` 를 사용하는데 이는 `디스크` 를 사용한 방식이 때문에 안정적입니다.
특이점으로는 `text field`를 캐싱하게되면 상당히 많은 메모리를 사용하기 때문에 `text field`는 기본적으로 비활성이다.

- **집계 쿼리 및 정렬에 사용되는 필드 데이터를 모두 캐시한다**
- **Text Field 에 한정되며 기본값은 false다**
- **Text Field의 기본값은 false다**
- **일단 메모리에 올리고나서 메모리가 부족할 경우 공간을 확보하기 때문에 OOM 이 발생할 수 있다**
- **캐시중 가장 많은 메모리를 소모한다**

0 comments on commit 0e99eca

Please sign in to comment.