아빠는 개발자

[es] file system cache 를 이용한.. 본문

Elastic/elasticsearch

[es] file system cache 를 이용한..

father6019 2023. 9. 24. 00:00
728x90
반응형

file system cache 를 이용한.. 꼼수를 부려보자

기존쿼리 + AGGS 를 사용하는데 file system cache 를 이용할 수 가 없다. 왜냐..면

size 가 0이 될 수 없는 상황..

그래서 AGGS size 0을 먼저 실행하고 그다음 검색쿼리를 실행하면 캐싱을 이용하지 않을까 하는 생각이 있는데 

테스트를 해보자 

 

location 정보를 색인할 예정이고

"country_code": {
  "type": "keyword"
},
"city": {
  "type": "keyword"
},

city 를 집계하고 country code 를 쿼리한다. 

 

flowchart

 

이게 가능한가? aggs name 으로 캐시가 생성되면 가능할꺼 같기도 한데..

aggs 결과를 쿼리결과와 합치지 않아도 된다면 후 처리 로직이 더 줄어들 듯한..

 

아무튼 테스트 해보자

 

800만개짜리 location 인덱스를 만들었다. 

오늘의 제물

AS-IS query 

multi_match + aggs 

{
  "query": {
    "multi_match" : {
      "query":    "{keyword}",
      "fields": [ "country_code"]
    }
  },
  "aggs": {
    "CITY": {
      "terms": {
        "field": "city"
      }
    },
    "COUNTRY": {
      "terms": {
        "field": "country"
      }
    }
  }
}

country code 50개 테스트 

앵?? 캐시를 타는...건..가?

 

match_all

 

일단 match_all 로 테스트를 해봐야겠다.  

size : 0 없이 실행 

AGGS 평균 : 316.66 AGGS 평균 : 312.35 AGGS 평균 : 311.66

size : 0 추가

AGGS 평균 : 11.87 AGGS 평균 : 11.81 AGGS 평균 : 11.24

확연한 차이를 보이는 

multi_match 로 실행하는경우는 캐싱이 되는거 같은데 샤드레벨에서 캐싱된 듯한... 

 

캐싱이 되어있는지 확인을 해보잣!

 

다음시간에

 

728x90
반응형