일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- TSLA
- Docker
- Query
- dbeaver
- java crawler
- aggs
- 아이온큐
- api cache
- ann
- Elastic
- mysql
- KNN
- elasticsearch cache
- JPA
- IONQ
- file download
- Aggregation
- redis
- java
- request cache
- Analyzer
- Elasticsearch
- API
- aqqle
- Selenium
- Cache
- 테슬라
- NORI
- vavr
- 양자컴퓨터
Archives
- Today
- Total
아빠는 개발자
[es] file system cache 를 이용한.. 본문
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
반응형
'Elastic > elasticsearch' 카테고리의 다른 글
[es] multi_match 쿼리와 Lucene 쿼리 구조 (1) | 2023.12.23 |
---|---|
[es] elasticsearch cache 모니터링 (query_cache, request_cache) (0) | 2023.09.24 |
[es] Warm up global ordinals (0) | 2023.09.23 |
[es] elasticsearch 성능개선 (elasticsearch cache) (0) | 2023.09.20 |
[es] Elasticsearch multi node cluster docker compose (0) | 2023.09.02 |