본문 바로가기

Elasticsearch

[Elasticsearch] scoring _score field 점수매기는 프로세스

반응형

🍭 Elasticsearch scoring에 대해 

 

 

Elasticsearch에서 scoring이란 유저 쿼리에 의해 검색된 documents의 관련성을 결정하는 프로세스이다. scoring이 어떻게 진행되는지 자세히 보기 전, elasticsearch의 검색 과정을 살펴보기

 

 

Elasticsearch의 검색 프로세스 

1. 먼저 elasticsearch 유저 쿼리에 맞는 모든 도큐먼트들을 찾는다. 이때, 쿼리에 맞으면 1을, 맞지 않으면 0으로 반응하는 Lucene Boolean model을 사용한다. 

 

2. 쿼리와 일치한 도큐먼트들을 Lucene Practical Scoring Function을 사용하여 각 도큐먼트에 점수를 매기고 (score) 그들의 관련성에 따라 분류한다. 

 

* Lucene Practical Scoring Function이란 ? 

LPSF는 Term Frequency/ Inverse Document Frequency (TF/IDF) model에 기초하고 있다. TF/IDF는 정보 검색, 자연언어 처리, 언어 분석의 다른 알고리즘 방법들 사용에 아주 유명하다. 이 모델에 따르면 인덱스 안에서 더 높은 용어 사용 빈도를 가진, 다른 도큐먼츠에 비해 더 유니크한 용어 사용을 가진 도큐먼트들이 더 관련도가 높다. 

 

위의 TF/IDF model 을 기반으로 한 Lucene scoring formula는 "_score"라는 이름의 0이상의 소수점으로 각각의 도큐먼트들의 관련 점수를 나타낸다. 점수가 높을수록 관련도가 높다. 하나의 쿼리문이 각 도큐먼트들의 "_score"를 생성하고 어떤 유형의 쿼리문인지에 따라 점수가 계산된다. 

 

Scoring이 존재하는 이유는 단지 도큐먼트에 찾는 단어가 있다고 해서 관련성이 높은게 아닐 수도 있기 때문이다. 반대로 맞는 것이 없다고 해서 그 도큐먼트가 관련성이 없는 것도 아니다. Elasticsearch는 알고리즘이 적용된 scoring function을 사용하여 관련성없는 정보들을 제외하고 검색이 가능하게 한다. 

 

 

 

 

 

Preference : https://qbox.io/blog/practical-guide-elasticsearch-scoring-relevancy#:~:text=In%20general%2C%20scoring%20in%20Elasticsearch,terms%20of%20the%20user%20query.

 

A Practical Guide on Elasticsearch Scoring and Relevancy | Qbox HES

Not yet enjoying the benefits of a hosted ELK-stack enterprise search on Qbox? Discover how easy it is to manage and scale your Elasticsearch environment.

qbox.io

 

반응형