Elasticsearch 확률 검색, function_score로 성능 UP!

by DD
3년 전
조회수 12

Elasticsearch에서 각 Document에 확률을 적용하는 세 가지 방법을 제시함

Script query의 성능 문제를 해결하기 위해 function_score를 활용한 최적화 기법 소개

Function scorelinear decay를 사용한 쿼리 성능이 Script query 대비 40배 이상 향상

Script Query의 성능 문제와 Function Score

Script query는 각 Document마다 스크립트를 실행하여 성능 저하를 유발한다. Function score는 Document의 score 계산 방식을 조작하여, random_scorefield_value_factor를 조합해 확률 기반 검색을 구현한다. 따라서 쿼리 성능 향상과 유연한 확률 제어가 가능하다.

Function Score를 활용한 최적화

Function score의 random_scorelinear decay를 함께 사용하면, alloc_rate 기반의 확률 할당을 효율적으로 구현할 수 있다. Linear decay는 특정 필드의 값을 score로 변환하여, 예산 소진 상태와 같은 다양한 조건에 유연하게 대응할 수 있도록 돕는다. 결과적으로 쿼리 성능유지보수성을 동시에 확보한다.

Elasticsearch 쿼리 성능 최적화 팁

Elasticsearch의 성능은 인덱싱 구성접근 패턴에 따라 크게 달라진다. 따라서 다양한 쿼리와 인덱싱 구성을 테스트하여, 최적의 성능을 확보해야 한다. Function score를 활용하면, 복잡한 확률 시나리오를 효율적으로 구현할 수 있으며, 쿼리 성능 개선에 기여한다.

Elasticsearch 검색에서 확률 사용하기

댓글 0

첫 번째 댓글을 남겨보세요!