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 를 쿼리한다.
이게 가능한가? 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 로 테스트를 해봐야겠다.
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
반응형