엘라스틱서치 filter+must 조합의 텍스트쿼리 성능비교
풘풘한~ 성능테스트의 세계로~ GOGO 🎢
테스트 환경
-
서버 갯수: 10대
-
형태소:
nori 형태소분석기 사용중
스탑태그 "E" , "IC" , "J" , "MAG" , "MM" , "NA" , "NR" , "SC" , "SE" ,”SF" , "SH" , "SN" , "SP" , "SSC" , "SSO" , "SY" , "UNA" , "UNKNOWN" , "VA" , "VCN" , "VCP" , "VSV" , "VV" , "VX" , "XPN" , "XR" ,"XSA" , "XSN" , "XSV" -
테스트하는 인덱스: 1개
-
인덱스의 샤드: shard 3 replica 2
-
인덱스의 문서수: 19,257,330
-
client: 1000
-
target-throughput: 1000
결과
*self.get_random_words = “가나다라마사 아자차자파타하 에이비씨디 이에프쥐 에이치아이”
쿼리 | throughput | CPU |
---|---|---|
{"query":{"bool":{ "must":[ {"match": {"text_field": self.get_random_words}}], "filter":[ {"term":{"is_selling": true}}, {"term":{"is_exposed":true}},{"term":{"is_sold_out": false}}, {"term":{"is_displayed": true}}]} },"from": 0,"size":100,"sort":{"keyword":"asc"}} | Mean Throughput(평균 처리량) : 364.40ops/s 90th percentile latency(대기시간 포함한 처리시간): 37267.97ms 90th percentile service time(대기시간을 포함하지 않은 처리시간): 3210.70m | 100% |
{"query":{"bool":{ "must":[ {"simple_query_string": {"query": self.get_random_words(),"fields":["text_field"]}}], "filter":[ {"term":{"is_selling":true}}, {"term":{"is_exposed": true}}, {"term":{"is_sold_out":false}}, {"term":{"is_displayed":true}}] }},"from":0,"size":10,"sort":{"keyword":"asc"}} | Mean Throughput(평균 처리량): 473.50ops/s 90th percentile latency(대기시간 포함한 처리시간): 30934.34ms 90th percentile service time(대기시간을 포함하지 않은 처리시간): 3334.04ms | 100% |
결론 : 위 사양일때, simple_query_string이 더 빠르다.
이거말고도 테스트 엄청 돌렸는데... 보안때문에 올릴 수가 없다.. 너무 슬프다.. 😥
Author And Source
이 문제에 관하여(엘라스틱서치 filter+must 조합의 텍스트쿼리 성능비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wjdgkrud/엘라스틱서치-filtermust-조합의-텍스트쿼리-성능비교저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)