Collapse AllExpand All

5장. 사전 편집 가이드

이 장에서는 서비스 프레임워크가 제공하는 각 서비스의 사전 파일 작성 방법 및 환경 설정에 관해 기술한다.

1. 사전

서비스 프레임워크가 제공하는 각 서비스는 영문 약자로 이루어진 서비스명을 가진다. 일부 서비스들은 사전을 사용하는데, 동일 서비스가 사용할 수 있는 사전은 하나 이상일 수 있다. 이들 사전을 구분하기위해 도메인 번호를 사용하며, 기본 도메인 번호는 0부터 시작한다.

사전 파일들은 WEB-INF/default.properties 파일의 dictionary.home 프로퍼티로 설정된 디렉터리에 존재해야 한다.

사전파일 명명 규칙

svc-dict[.domain].ext
구분설명

svc

서비스명

  • akc : 검색어 자동 완성 서비스

  • csw : 금칙어 서비스

  • kre : 추천 검색어 서비스

  • ppk : 인기 검색어 서비스

  • spc : 오타 교정 서비스

  • rpk : 실시간 인기검색어 서버스

  • hnj : 한자 독음 서비스

  • drk : 문서랭킹 서비스

dict

사전 종류

  • syst : 시스템 사전

  • user : 주 사용자 사전

  • usr2 : 부가 사용자 사전

  • stop : 금칙어 사전

domain

도메인 번호

ext

확장자

시스템 사전의 경우 dat (편집 불가), 그 외의 경우 txt (편집 가능)

1.1. 편집, 컴파일 및 리로드

시스템 사전(syst)은 서비스 프레임워크와 함께 배포되며 편집이 불가능하다. 그 외의 사전은 Admin을 통해 편집하거나, 텍스트 편집기로 직접 수정할 수 있다.

수정된 사전 파일은 컴파일 및 리로딩 과정을 거쳐야 서비스에 반영된다. 컴파일 및 리로딩은 Admin을 통해 명령할 수 있다. 혹은 아래와 같이 직접 명령어를 내려 수행할 수도 있다.

$ curl -A "KSF/1.0" "http://host:port/ksf/modules/reload?target=svc&domain_no=domain"

오타교정과 같이 도메인을 가지지 않는 서비스의 경우, domain 파라미터로 -1을 지정한다.

참고

cURL 홈페이지(http://curl.haxx.se)에서 cURL 바이너리를 다운로드 받고, 사용법을 확인할 수 있다.

1.2. Admin과의 연동

Konan Search 패키지를 설치한 경우, Admin과 서비스 프레임워크는 자동으로 설치/연동된다. 단독으로 설치하는 경우 아래 절차를 참고하여 Admin에 서비스 프레임워크를 연동한다.

  1. 웹브라우저를 통해 Admin에 접속한다. (예 : http://localhost:7614/admin-webapp)

  2. [환경설정] > [엔진설정] 메뉴에서 [서비스 엔진 목록]에 서비스 프레임워크를 등록한다. 아래 등록 예시를 참고한다.

    • 서비스 엔진명 : Konan-Service-Framework

    • URL : http://l127.0.0.1:7614/ksf

    • 그룹명 : search

  3. [엔진관리] > [모듈관리] > [모듈관리] 메뉴로 이동한다. 엔진으로 서비스 프레임워크를 선택한 후, 관리할 사전모듈에 도메인을 추가한다.

  4. 이후 Admin에서 [사전관리]탭을 통해 사전을 관리할 수 있다. (실시간 인기 검색어, 한자독음 제외)

2. 검색어 자동 완성 서비스 (akc)

자동완성 기능은 사용자가 검색어를 입력할 때, 시스템에 등록된 사전을 이용하여 입력된 검색어를 포함하는 완성형 검색어를 제시하는 기능이다.

2.1. 사전 구성

종류파일명

주 사용자 사전

akc-user.{domain}.txt

보조 사용자 사전

akc-usr2.{domain}.txt

금칙어 사전

akc-stop.{domain}.txt

사용자 사전이 주 사용자 사전과 보조 사용자 사전으로 분리되어 있기 때문에 활용 목적에 따라 별도 관리가 가능하다.

예를 들어, 주 사용자 사전은 Admin을 통해 수동 관리하고 보조 사용자 사전은 Konan Log Analytics를 통해 자동으로 관리할 수 있다.

2.2. 사전 구조

사전 형식

keyword:[tag1]:[tag2]
구분설명

keyword

완성형 검색어로 제시될 검색어 (필수)

tag1

검색어 자동완성 서비스 시 부가적인 정보로 사용 (생략 가능)

tag2

검색어 자동완성 서비스 시 부가적인 정보로 사용 (생략 가능)

예를 들어, 자동완성 후보가 기관명을 가리킬 때 기관 홈페이지 주소를 tag1에 추가하여 해당 검색어와 함께 제시할 수 있다. 이후 제시된 해당 검색어를 선택하면 기관 홈페이지로 이동하도록 서비스를 구축할 수 있다.

keyword, tag1, tag2의 구분자로 콜론(:)을 사용하며 콜론(:) 문자를 포함하고 싶을 경우 '\:'와 같이 명시한다.

예시

$ head akc-user.0.txt
테스트
삼성:www.samsung.co.kr:200
삼성전자:www.sec.co.kr:300
엘쥐:www.lg.co.kr:200
삼성동:\::100
PMP:아이스테이션:500
전자사전::600
MP3::500
DMB:핸드폰
PSP:소니:190,000
$ head akc-usr2.0.txt
아이팟:www.apple.co.kr:200
아이나비:나비:500
$ head akc-stop.0.txt
테레비

2.3. 설정 파일

자동완성 서비스의 환경 설정은 akc-conf.{domain}.rc 파일에 저장된다.

프로퍼티명설명

use_character_series

(Deprecated)

한글 풀어쓰기 사용 여부를 설정한다. (기본값 : 1)

  • 0 : 입력문 유지

  • 1 : 입력문을 초성, 중성, 종성으로 풀어쓰기 변환을 한다.

참고

이 옵션은 더 이상 지원하지 않으며 기본적으로 한글 풀어쓰기를 사용한다.

use_consonant_match

초성 풀어쓰기 검색 여부를 설정한다. (기본값 : 0) (1.2.0 버전 부터)

  • 초성 검색은 입력 문자열이 초성 혹은 숫자나 공백으로 이루어졌을 경우에만 동작하며, 검색 시 공백은 무시된다.

  • 사전에 등록된 검색어가 한글이나 숫자가 아닌 문자는 무시하고 초성 및 숫자만 일치하는 검색을 찾는다.

  • 초성 검색은 첫 단어 일치 모드로만 동작한다.

use_keyword_case

입력문이 영문일 경우 대소문자 구분 여부를 설정한다. (기본값 : 0)

  • 0 : 대소문자 구분 안함

  • 1 : 대소문자 구분함

whitespace_sensitive

공백 문자 무시 여부를 설정한다. (기본값 : 0)

modes

지원하는 자동완성 모드를 설정한다. (기본값 : se)

첫 단어 일치(starts with), 가운데 단어 일치(contains), 끝 단어 일치(ends with), 단어 기반 일치(token based) 모드를 조합하여 지정할 수 있다.

  • s : 첫 단어 일치 지원

  • sc : 첫 단어 및 가운데 단어 일치 지원

  • se : 첫 단어 및 끝 단어 일치 지원

  • sce : 첫 단어, 공백 기준의 가운데 단어, 끝 단어 일치 지원

  • t : 단어(토큰) 기반 일치 지원 (일치 횟수 순으로 정렬)

참고

  • t모드는 sce 모드와 섞어서 사용 할 수 없다.

  • 지원하는 모드가 늘어나면 사전 컴파일 시간 및 사용되는 메모리 용량이 늘어나므로 필요한 모드만 설정하는 것이 바람직하다.

sort_by_linenum

완성형 검색어 정렬 방법을 설정한다. (기본값 : 1)

  • 1 : 사전에 등록된 순서로 우선 정렬 (modes=t 경우, 히트카운트 + 사전위치 + 시드위치 + 토큰인덱스)

  • 0 : 가나다 순서대로 정렬 (modes=t 경우, 히트카운트 + 시드위치 + 토큰인덱스 + 사전위치)

참고

  • 1.2.5 버전 부터는 t모드에서도 동작한다.

use_token_all_match

(mdes=t 일 때 사용 가능)

토큰 완전 일치 여부를 설정한다. (기본값 : 0) (1.2.5 버전 부터)

1로 설정할 경우, 입력한 토큰이 모두 맞는 단어만 출력된다.

설정 후, 사용 예시

use_token_all_match = 1
  • 검색어 : "AA 증권 거래소"

  • 검색 결과 : "AA", "증권", "거래소" 세개 토큰이 모두 맞는 단어만 출력되고 "AA은행", "증권회사"는 출력되지 않음.

merge_weights

2중 모드 (modes=sc 혹은 modes=se 등 두가지 모드) 에서 각 모드에 대한 검색 결과를 통합하여 하나의 배열로 반환받는 옵션이다. (기본값 : N/A) (1.2.0 버전 부터)

예를 들어, modes=sc일 경우 s와 c 모드에 대한 각 결과를 하나의 모드처럼 취급하여 단일 배열에 넣어 반환한다. 이때 각 모드에 대한 개별 결과 건수 조정을 merge_weights 값으로 설정한다.

이 모드는 나타나는 키워드의 중복을 제거한다.

modes=sc, merge_weights=7:3 일 경우, merge_weights는 s와 c결과에 대해 분배할 키워드 개수이다. (비율이 아님) 따라서 만약 결과 건수를 max_count를 20으로 한다면 merge_weights=14:6과 같은 식으로 조정해야 한다.

두 모드의 결과 중 하나의 결과 값이 모자랄 경우, 다른 모드의 결과 값으로 채워준다. 7:3 예에서 s 결과가 9이고, c 결과가 2일 경우에는 8:2로 반환한다. s의 결과가 0이고 c의 결과가 10일 경우에는 c의 결과를 모두 반환한다.

use_hnj

(mdes=t 일 때 동작 불가)

입력문 사전에 포함된 한자의 독음으로 검색어를 추천한다. (기본값 : 0) (1.2.0 버전 부터)

참고

  • use_hnj 옵션을 활성화하기 위해서는 동일한 도메인에 한자독음 모듈이 실행되고 있어야 한다.

allow_duplication

사전에 중복된 키워드를 허용한다. (기본값 : true) (1.2.1 버전 부터)

  • true : 중복 허용

  • false : 중복 제거

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

  • 설치된 JVM이 지원하는 문자셋들을 지원한다.

    EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

  • use_hnj=1로 설정한 경우에는 반드시 charset=utf-8로 문자셋을 설정해야 한다. euc-kr의 경우는 한국식 한자만 표현할 수 있으므로 유니코드 상의 희귀 한자, 간체 등은 표현할수 없기 때문이다.

prefixes

토큰 기반 자동완성과 관련된 설정 정보이다. (기본값 : null)

사전 파일에 형태소 분석 결과가 포함되어 있을 경우 사전 파일 라인 앞 구분자들의 목록을 설정한다.

max_token_count

토큰 기반 자동완성과 관련된 설정 정보이다. (기본값 : 7)

인덱스에 포함시킬 최대 토큰의 개수를 설정한다.

min_token_len_en

토큰 기반 자동완성과 관련된 설정 정보이다. (기본값 : 3)

인덱스에 포함시킬 최소 토큰 길이를 설정한다. (영문)

min_token_len_ko

토큰 기반 자동완성과 관련된 설정 정보이다. (기본값 : 2)

인덱스에 포함시킬 최소 토큰 길이를 설정한다. (한글)

use_final_consonant_series

종성 풀어쓰기 기능을 허용한다. (기본값 : false) (1.2.6 버전 부터)

  • true : 종성 풀어쓰기 허용

  • false : 종성 풀어쓰기 허용 안함 (기본값)

설정 후, 사용 예시

  • 검색어 : 웺

  • 자동완성 결과 : '웹솔루션', '웹소설'과 같은 단어 노출

usr2_dictionary_first

true 설정 시, 보조 사용자 사전인 akc-usr2.{domain}.txt을 우선 적용된다. (기본값 : false) (1.2.14 버전 부터)

Admin에서는 자동목록의 키워드를 상위에 먼저 노출 시킬 수 있다.

use_mode_contains_endswith

공백 기준의 가운데 단어의 끝 단어 검색 여부를 설정한다. (기본값 : 0) (1.3.1 버전부터)

  • 0 : 공백 기준의 가운데 단어의 끝 단어 검색 사용안함

  • 1 : 공백 기준의 가운데 단어의 끝 단어 검색 사용

참고

modes 프로퍼티가 sce, ce일때 작동한다.

3. 인기 검색어 서비스 (ppk)

인기검색어는 사전을 기반으로 검색어 순위 목록을 제공하는 기능이다.

3.1. 사전 구성

종류파일명

주 사용자 사전

ppk-user.{domain}.txt

보조 사용자 사전

ppk-usr2.{domain}.txt

금칙어 사전

ppk-stop.{domain}.txt

사용자 사전이 주 사용자 사전과 보조 사용자 사전으로 분리되어 있기 때문에 활용 목적에 따라 별도 관리가 가능하다.

예를 들어, 주 사용자 사전은 Admin을 통해 수동 관리하고 보조 사용자 사전은 Konan Log Analytics를 통해 자동으로 관리할 수 있다.

3.2. 사전 구조

사전 형식

keyword:변동순위
구분설명

keyword

인기 검색어로 제시될 검색어 (필수)

변동순위

검색어 변동 순위 (생략 가능)

구분자로 콜론(:)을 사용하며 콜론(:) 문자를 포함하고 싶을 경우 '\:'와 같이 명시한다.

예시

$ head ppk-user.0.txt
코난:new
Java:0
테크놀로지:152
전자:-11
스마트폰:14
$ head ppk-usr2.0.txt
대한민국
서울
검색엔진
$ head ppk-stop.0.txt
mp3
복합기

3.3. 설정 파일

인기검색어 서비스의 환경 설정은 ppk-conf.{domain}.rc 파일에 저장된다.

프로퍼티명설명

max_no_of_user_data

주 사용자 사전에서 반환할 인기검색어 최대 개수를 설정한다.

  • 기본적으로 사전에 저장된 모든 인기검색어 목록을 반환한다.

  • 주 사용자 사전에 저장된 인기검색어 개수가 설정 값 보다 작을 경우 보조 사용자 사전에서 추가적으로 인기검색어 목록을 반환한다.

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

설치된 JVM이 지원하는 문자셋들을 지원한다.

EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

use_stop_like_match

1로 설정할 경우, 금칙어 사전(ppk-stop.{domain}.txt)에서 일부단어만 일치되어도 인기검색어 목록에서 해당 단어가 제외된다. (기본값 : 0) (1.2.12 버전 부터)

  • 0 : 금칙어 사전의 단어와 완전히 일치하는 단어만 인기검색어 목록에서 제외

  • 1 : 금칙어 사전 단어의 일부 단어만 일치하여도 인기검색어 목록에서 제외

usr2_dictionary_first

true 설정 시, 보조 사용자 사전인 ppk-usr2.{domain}.txt을 우선 적용된다. (기본값 : false) (1.2.14 버전 부터)

Admin에서는 자동목록의 키워드를 상위에 먼저 노출 시킬 수 있다.

4. 추천 검색어 서비스 (kre)

입력한 검색어와 연관된 다른 검색어를 추천하는 기능이다.

추천검색어 사전은 서로 연관성이 있는 검색어의 목록을 저장하며, 검색어 입력 전후의 검색 패턴을 분석하여 추출한다. Konan Log Analytics를 사용할 경우 검색 로그를 이용하여 주기적으로 갱신되는 추천검색어 목록을 사전 데이터로 사용할 수 있으며, 별도의 추천검색어 목록이 있을 경우 이를 사용할 수도 있다.

4.1. 사전 구성

종류파일명

주 사용자 사전

kre-user.{domain}.txt

보조 사용자 사전

kre-usr2.{domain}.txt

금칙어 사전

kre-stop.{domain}.txt

사용자 사전이 주 사용자 사전과 보조 사용자 사전으로 분리되어 있기 때문에 활용 목적에 따라 별도 관리가 가능하다.

예를 들어, 주 사용자 사전은 Admin을 통해 수동 관리하고 보조 사용자 사전은 Konan Log Analytics를 통해 자동으로 관리할 수 있다.

4.2. 사전 구조

사전 형식

추천검색어 사전의 각 엔트리는 다음과 같이 두 가지 형식을 가진다. (기본형, 표제어형)

  • 기본형

    검색어1,검색어2,검색어3,...,검색어n

    검색어n으로 검색할 경우 검색어n을 제외한 나머지 검색어들을 지정된 개수 만큼 순서대로 추천한다.

    검색어 간의 구분자는 콜론(:)을 사용하며 콜론(:) 문자를 포함하고 싶을 경우 '\:'와 같이 명시한다.

  • 표제어형

    표제어:검색어1,검색어2,...,검색어n
    

    표제어로 검색할 경우 검색어1 부터 검색어n 까지 지정된 개수 만큼 순서대로 추천한다.

    표제어검색어들 간의 구분자는 콜론(:)을 사용하며 콜론(:) 문자를 포함하고 싶을 경우 '\:'와 같이 명시한다.

    참고

    이전 버전과 달리 하나의 사전 안에 기본형과 표제어형의 사전 엔트리를 혼합하여 사용할 수 있다.

예시

$ head kre-user.0.txt
핸드폰, 이효리, 초코렛폰, 테레비
"동급생, 하급생", 동급생, 하급생, "동급셍, 하급셍", 동급셍, 하급셍
"록맨, 메가맨", 록맨 메가맨, 록멘 메가멘, 록멘 메가맨, 록맨 매가맨, 록맨 매가멘
"록맨, 메가맨 (31)", "Rock Man, Mega Man"
061JOB, 061job
1492마일스, 1492MILES, 일사구이마일스, 1492마일즈, 일사구이마일즈
16진수 , hexadecimal
24h 크림, 24시간 크림
$ head kre-usr2.0.txt
사이언:LG사이언, LG텔레콤
스카이, 스키니폰, 펜택
캔유, 흰둥이
$ head kre-stop.0.txt
테레비

위의 사전 파일을 이용하는 경우 검색어 "핸드폰"에 대한 추천검색어는 "이효리"와 "초코렛폰"이다. "테레비"기 제외되는 이유는 "테레비"가 금칙어 사전(kre-stop.0.txt)에 등록되어 있기 때문이다.

4.3. 설정 파일

추천검색어 서비스의 환경 설정은 kre-conf.{domain}.rc파일에 저장된다.

프로퍼티명설명

use_keyword_case

입력문이 영문일 경우 대소문자 구분 여부를 설정한다. (기본값 : 0)

  • 0 : 대소문자 구분 안함

  • 1 : 대소문자 구분함

whitespace_sensitive

공백 문자 무시 여부를 설정한다. (기본값 : 0)

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

설치된 JVM이 지원하는 문자셋들을 지원한다.

EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

usr2_dictionary_first

true 설정 시, 보조 사용자 사전인 ppk-usr2.{domain}.txt을 우선 적용된다. (기본값 : false) (1.2.14 버전 부터)

관리기에서는 자동목록의 키워드를 상위에 먼저 노출 시킬 수 있다

5. 오타 교정 서비스 (spc)

사용자가 입력한 검색어는 다양한 요인에 의해 잘못된 형태로 입력될 수 있다. 맞춤법이 틀렸거나, 영문 입력 모드에서 한글을 입력하는 경우 등에 의해 잘못된 검색어로 원치 않은 검색을 수행하는 경우가 발생한다.

오타변환은 사용자가 잘못 입력한 검색어를 교정하여 정확한 검색 결과를 얻을 수 있도록 지원하는 서비스이다.

5.1. 사전 구성

종류파일명비고

시스템 사전

spc-syst.dat

기본으로 제공되는 오타변환 규칙 사전이다.

사용자에 의한 임의 수정은 불가능하다.

사용자 사전

spc-user.txt

사용자가 편집할 수 있는 사전이다.

이 사전에 등록된 오타변환 규칙은 시스템 사전 보다 높은 우선순위를 가진다.

금칙어 사전

spc-stop.txt

교정 후 출력될 목록에서 제외시키기 위한 사전이다.

일반적으로 자동화되어 있는 시스템에서는 사용자들에 의한 오용(abuse)이나 관리자의 실수로 인해 미풍양속에 반하는 금칙어들이 그대로 서비스에 노출되는 경우가 있다. 금칙어 사전(spc-stop.txt)에 이러한 단어들을 등록해 놓으면 서비스 노출을 막을 수 있다.

빈도수 사전

spc-freq.txt

Deprecated

색인된 문서집합에서 키워드의 문서 빈도수를 나타내는 빈도수 사전으로, 더 이상 사용하지 않는다.

5.2. 사전 구조

사전 형식

correct_word [ : incorrect_word ,incorrect_word, ...]
구분설명

correct_word

입력한 오타에 대한 정답

incorrect_word

정답으로 수정될 오타 항목

쉼표(,)로 나열

예시

$ head spc-user.txt
daemon: deamon
simple: simpel
김치찌개: 김치치개, 김치찌게
$ head spc-stop.txt
섹스
야설
야동

5.3. 설정 파일

오타변환 서비스의 환경 설정은 spc-conf.rc 파일에 저장된다.

프로퍼티명설명

spc_opt_term_validation_level

영/한 키스트로크 변환 시 교정 방법을 설정한다. (기본값 : 1)

  • 0 : 변환된 결과가 한글 자모 규칙에 맞으면 교정한다.

  • 1 : 사용자 사전이나 시스템 사전에 올바른 철자로 등록되어 있는 경우에만 교정한다.

참고

  • 한글자모 규칙에 맞는것 : 가나다

  • 규칙에 어긋나는것 : ㄱ나다

  • 1.2.7 버전부터 기본값이 1로 변경되었다. (1.2.6 버전까지는 기본값=0)

spc_opt_min_term_length

영/한, 한/영 키스트로크 변환 및 유사 단어를 제시 기능을 사용하기 위해 필요한 최소 키스트로크 수를 설정한다. (기본값 : 4)

참고

  • 키스트로크 수 : 자판 입력 횟수

    (예) 'ㄱ' 혹은 'r'의 경우 1

    (예) '가'의 경우 2

    (예) '각'의 경우 3

  • 설정된 값 보다 적은 키스트로크 입력의 경우 키스트로크 변환 및 유사 단어 제시 알고리즘은 수행되지 않는다.

spt_opt_min_sim_score

유사 단어 제시 기능 사용 시, 유사 단어 간의 최소 편집 거리를 설정한다. 0~1 사이의 값을 설정한다. (기본값 : 0.5) (1.2.8 버전 부터)

  • 1 : 두 단어가 일치함을 의미한다.

  • 0 : 두 단어가 완전히 다름을 의미한다.

spc_opt_use_user_dic

(Deprecated)

사용자 사전의 사용 여부를 설정한다.

참고

사용하지 않는 프로퍼티이다. 사용자 사전이 존재하는 경우 사용되고 존재하지 않는 경우 사용되지 않는다.

spc_opt_use_system_dic

(Deprecated)

시스템 사전의 사용 여부를 설정한다.

참고

사용하지 않는 프로퍼티이다. 사용자 사전이 존재하는 경우 사용되고 존재하지 않는 경우 사용되지 않는다.

spc_opt_use_kscv_e2k

입력이 영문으로만 구성된 경우 영/한 키스트로크 변환의 사용 여부를 설정한다. (기본값 : 1)

참고

사용 시(1일 경우) 교정 방법은 spc_opt_term_validation_level 설정값을 따른다.

spc_opt_use_kscv_k2e

입력이 한글로만 구성된 경우 한/영 키스트로크 변환의 사용 여부를 설정한다. (기본값 : 1)

참고

사용 시(1일 경우) 변환 결과가 사용자 사전이나 시스템 사전에 올바른 철자로 등록되어 있는 경우에만 교정한다.

오타는 한/영 변환 결과를 검사하지 않는다.

(예)

  • 정답 : abc

  • 오타 : def

  • "뮻" 입력 시, "abc"를 출력하며, "ㅇㄷㄹ" 입력 시, 검색 결과를 찾을 수 없다.

spc_opt_use_typo_e2e

입력이 영문으로만 구성된 경우 유사 단어 제시 기능의 사용 여부를 설정한다. (기본값 : 1)

spc_opt_use_typo_k2k

입력이 한글로만 구성된 경우 유사 단어 제시 기능의 사용 여부를 설정한다. (기본값 : 1) (1.2.7 버전 부터)

  • 0 : 유사 단어 제시기능 사용하지 않음

  • 1 : 한글 유사 단어 제시 기능 사용

  • 2 : 한글 유사 단어 제시 기능 사용 시 비슷한 음절, 음소 거리를 계산하여, 유사도 점수를 높임 (1.3.1 버전 부터)

spc_opt_use_typo_sys

유사 단어 제시 기능 사용 시, 시스템 사전 사용 유무를 설정한다. (기본값 : 1) (1.2.11 버전 부터)

  • 1 : 시스템 사전 사용

  • 0 : 시스템 사전 사용하지 않음

spc_opt_use_stopword

(Deprecated)

금칙어 사전의 사용 여부를 설정한다.

참고

사용하지 않는 프로퍼티이다. 금칙어 사전이 존재하는 경우 사용되고 존재하지 않는 경우 사용되지 않는다.

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

설치된 JVM이 지원하는 문자셋들을 지원한다.

EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

6. 금칙어 서비스 (csw)

입력된 검색어에 금칙어가 포함되어 있는지 검사하고 포함되어 있을 경우 해당 금칙어들을 반환하는 서비스이다.

금칙어 사전은 서비스에 노출되어서는 안되는 미풍양속에 반하는 검색어들을 포함하고있다. 이러한 금칙어들의 경우 별도의 수집 및 관리가 필요하다.

6.1. 사전 구성

종류파일명비고

시스템 사전

csw-syst.{domain}.dat

일반적으로 금칙어로 통용되는 검색어들을 포함하고 있으며 수정이 불가능하다.

사용자 사전

csw-user.{domain}.txt

추가적인 금칙어 목록 지정이 필요할 경우 사용자 사전에 등록한다.

금칙어 제외 사전

csw-stop.{domain}.txt

금칙어로 취급하지 않을 검색어들을 등록한다.

6.2. 사전 구조

예시

$ head csw-user.0.txt
섹스
야설
야동
성인
$ head csw-stop.0.txt
세계4대성인
잡지
11시발
동시발매
밀크쉐이크
천사 조나단

6.3. 설정 파일

금칙어 서비스의 환경 설정은 csw-conf.{domain}.rc 파일에 저장된다.

프로퍼티명설명

use_exact_match

금칙어 사전의 목록과 일치하는 결과값을 반환 할 것인지 설정한다. (기본값 : 1)

1로 설정할 경우 다른 옵션들은 무시된다.

use_character_series_match

입력문을 풀어쓰기 할 것인지 설정한다. (기본값 : 0)

ignore_special_character

입력문에 특수문자가 포함되어 있을 경우 무시할 것인지 설정한다. (기본값 : 0)

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

설치된 JVM이 지원하는 문자셋들을 지원한다.

EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

검색어가 금칙어로 취급되는 것을 막기 위해 한글 풀어쓰기 및 특수문자를 혼용하는 경우가 있는데, 이러한 시도를 막기위한 옵션을 제공한다. 사용자 사전에 "성인"을 등록한 후 use_chracter_series_match와 ignore_special_character를 1로 설정하면 "ㅅㅓㅇ인", "성/인", "성 인"등의 검색어도 금칙어로 추출할 수 있다.

"세계4대성인"과 같은 검색어의 경우 금칙어로 취급되지 않도록 하기 위해서는 금칙어 제외 사전(csw-stop.{domain}.txt)에 검색어 전문을 등록한다.

7. 실시간 인기검색어 서비스 (rpk)

실시간 인기검색어는 실시간으로 요청되는 검색어들의 순위 목록을 제공하는 기능이다.

7.1. 사전 구성

종류파일명

금칙어 사전

rpk-stop.{domain}.txt

실시간 인기검색어를 사용할 경우, rpk-stop.{domain}.txt 사전이 빈 파일일지라도 필수로 생성되어 있어야 한다.

7.2. 사전 구조

예시

$ head rpk-stop.0.txt
mp3
복합기

7.3. 설정 파일

실시간 인기검색어 서비스의 환경 설정은 rpk-conf.{domain}.rc 파일에 저장된다.

프로퍼티명설명

entry_size

검색한 entry_size (테이블의 최대 row개수)

(기본값 : 100000)

memory_entry_size

실시간 인기 검색어 개수

(sorting되어 메모리에 가져올 수 있는 최대 검색어 개수)

(기본값 : 100)

refresh_interval

메모리에 있는 실시간 인기 검색어를 새로 refresh하는 interval

(기본값 : 60 (seconds))

data_interval

실제 API로 rtrankings호출 시 얼마큼 시간 이전부터 실시간 인기검색어의 포함시킬지의 interval

(기본값 : 1 (hour))

charset

사전 데이터의 문자셋을 설정한다.

(기본값 : utf-8)

참고

설치된 JVM이 지원하는 문자셋들을 지원한다.

EUC-KR로 설정한 경우, module-conf.도메인번호.rc 파일에도 euckr 설정이 있어야 하며, 사전 파일 인코딩을 ANSI로 변경해야 한다.

8. 한자 독음 서비스(hnj)

입력받은 텍스트 내에 있는 모든 한자들을 한글 독음으로 치환하는 서비스이다.

8.1. 사전 구성

종류파일명비고

시스템 사전

hnj-syst.{domain}.dat

기본 시스템 사전으로 수정이 불가능하다.

사용자 사전

hnj-user.{domain}.txt

  • 한자의 대표 음가가 아닌 사용자 사전에 등록된 독음으로 변환한다.

  • 한글-한자 혹은 숫자 혼합 형태는 지원하지 않는다. 즉, 독음:한자의 경우 우측 컬럼은 반드시 한자로만 입력해야한다.

    • 行정 (X) / 行政 (o)

금칙어 제외 사전

hnj-stop.{domain}.txt

금칙어 사전에 등록 시 해당 한자들을 독음 변환을 하지 않는다. 사용자 사전과 금칙어 사전에 같은 한자가 등록되는 경우 금칙어 사전이 우선된다.

8.2. 사전 구조

예시

$ head hnj-user.0.txt
관리:管理
행정:行政
행위:行爲
$ head hnj-stop.0.txt
不可能

8.3. 설정 파일

한자 독음 서비스의 환경 설정은 hnj-conf.{domain}.rc 파일에 저장된다.

프로퍼티명설명

charset

사전 데이터의 문자셋을 설정한다. (기본값 : utf-8)

참고

한자 독음 사전의 경우는 charset을 반드시 utf-8로 지정해야 한다. euc-kr의 경우는 한국식 한자만 표현할 수 있으므로 유니코드 상의 희귀 한자, 간체 등은 표현할 수 없다.