임계값이란 무엇인가?

  • 자연어 검색 임계값(Natural Language Search Threshold) : 전문 검색 시스템에서 사용되는 설정값이다. 이 임계값은 검색 결과의 관련성(relevance)에 영향을 준다. 자연어 검색 시스템은 이 임계값을 사용하여 쿼리와 일치하는 문서의 최소 관련성 수준을 결정한다고 한다.
  • 임계값보다 낮은 관련성 점수를 가진 문서는 검색 결과에서 제외된다. 이렇게 함으로써 검색 결과의 품질을 향상시키고, 사용자에게 관련성이 높은 결과를 제공할 있다.  임계값을 설정하거나 조정함으로써 검색 결과의 정확성과 관련성을 최적화할 있다.
  • 기본 임계값은 최소4, 최대 84

임계값에 대한 고찰

  • 임계값(Threshold)이란 쉽게 말해서 어떤 기준을 말한다.
  • 특정 조건이 충족되거나 불충족되면 다른 처리가 이루어진다.
    • 예를들어 어떤 프로세스에서 데이터를 처리하는데 걸리는 시간이 일정 시간을 넘어갈 경우 경고 메세지를 출력하는 것과 같은 상황에 사용된다. 
  • MY SQL에서 임계값은 검색 결과의 관련성에 영향을 미친다. 임계값이 너무 높으면 검색 결과가 적게 나올 수 있고, 너누 낮으면 덜 관련성있는 결과가 많이 나올 수 있다. 임계값을 조절함으로써 검색 결과의 정확성과 관련성을 개선할 수 있다.
  • 데이터 검색 민감도라고 생각하면 편할것 같다. 
  • 토큰길이가 곧 임계값이라고 생각할 수 있다. 이 값에 따라 검색 인덱스와 검색 결과의 질이 달라진다. 
    • 토큰 길이가 길면 검색 정확도가 높아지지만 색인 크기와 검색 속도에 부정적인 영향을 미칠 수 있다.
    • 반면 토큰 길이가 짧으면 색인 크기와 검색 속도는 개선되지만 검색 정확도가 떨어질 수 있다.
    • 따라서 검색 결과의 질을 유지하면서 검색 속도를 높일 수 있는 임계값 설정이 중요하다

 

확인하는 방법 : 콘솔에서 아래와 같이 적는다. 

#자연어 임계값 확인
SHOW VARIABLES LIKE 'ft_min_word_len';
SHOW VARIABLES LIKE 'ft_max_word_len';

임계값 변경는 방법 : my.cnf 파일에 아래처럼 추가한다. 

ft_min_word_len = 4

변경후 SQL재실행 -> 인덱싱 재작업

 

  • parser에도 임계값이 있다. 
# 임계값 보기
SHOW VARIABLES LIKE 'innodb_ft_ngram_size';

# 임계값 변경
SET GLOBAL innodb_ft_ngram_size = 3;
SET SESSION innodb_ft_ngram_size = 3;

 

  • 전역(global) 또는 세션(session) 범위의 변수 값을 변경한다.
  • 값이 변경된 후에는 새로 인덱싱해야 설정된 값이 변경된다.
  • 기존 인덱스에는 변경되지 않으므로 다시 인덱싱 해서 인덱스를 만들어 줘야한다. 

 

검색 결과의 질을 높이려면 임계값 설정을 잘 해야한다고 생각한다. 

 

 

 

+ Recent posts