임계값이란 무엇인가?
- 자연어 검색 임계값(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) 범위의 변수 값을 변경한다.
- 값이 변경된 후에는 새로 인덱싱해야 설정된 값이 변경된다.
- 기존 인덱스에는 변경되지 않으므로 다시 인덱싱 해서 인덱스를 만들어 줘야한다.
검색 결과의 질을 높이려면 임계값 설정을 잘 해야한다고 생각한다.
'파이널 프로젝트' 카테고리의 다른 글
[트러블슈팅] ISBN 검색속도 저하 문제 (0) | 2023.04.12 |
---|---|
[CS] 스레드에 대한 고찰 (1) | 2023.04.12 |
[MYSQL][Full-Text Search] 의 인덱스 (0) | 2023.04.11 |
[SQL] Full-Text Search란 무엇인가? (0) | 2023.04.11 |
추천 도서 검색 알고리즘 계획 (0) | 2023.04.11 |