Collapse AllExpand All

부록 B. 토큰 기반 자동완성의 메모리 사용량 관련 설정

자동완성 모듈은 빠른 응답 시간을 보장하기 위해 사전 및 인덱스를 메모리로 로딩하여 서비스한다. 이에 따라 사전 파일의 크기가 클수록 메모리 요구량도 증가하게 된다. 토큰 기반 자동완성 모드에서는 인덱스에 저장할 토큰의 개수를 제한함으로써 메모리 사용량을 줄일 수 있다. 이 값은 설정 파일에 max_token_count로 설정할 수 있다 디폴트 값은 7이다.

max_token_count=7

예를 들어 "평생 남는 영어 읽기 11 그리스-로마 신화 핵심 7일에 영어로 끝내기"라는 키워드가 있을 때 max_token_count를 5로 설정하면 "평생", "남는", "영어", "읽기", "11"만 인덱스에 포함되고 그 이후의 토큰들은 버려진다.

형태소 분석을 통하면 식별성이 떨어지는 동일한 키들이 많이 발견된다. 예를 들어 B사 서점의 경우 250만 개의 제목에서 추출한 형태소들 중 고빈도 키워드들을 살펴보면 아래와 같다.

키워드빈도수

the

580,463

of

490,720

and

343,331

a

241,195

in

206,764

2

159,381

to

147,165

이들 키워드들은 짧은 길이로 인해 식별성은 떨어지지만 매우 많은 빈도수로 인해 메모리를 상당 부분 점유하고 있다. 이러한 키워드들을 인덱스에 포함시키지 않음으로써 필요로 하는 메모리를 절약할 수 있다.

min_token_len_en=3
min_token_len_ko=2

min_token_len_en과 min_token_len_ko는 각각 영문과 한글에서 인덱스에 포함시키기 위해 최소로 필요로 하는 글자 길이이다. 디폴트는 각각 3과 2로서 이보다 적은 길이의 단어들은 인덱스에 포함시키지 않는다. 위의 B사 서점의 예에서 3 보다 적은 of, a, in, 2, to와 같은 단어들은 인덱스에 포함시키지 않는다. 이 옵션은 형태소 분석 결과 토큰에만 적용되며 공백 구분 토큰에는 적용되지 않는다.