CREATE TEXT SEARCH TEMPLATE
CREATE TEXT SEARCH TEMPLATE
텍스트 검색 사전이 실제로 하는 일은 그 뒤에 있는 함수들이 정해요. CREATE TEXT SEARCH TEMPLATE가 그 함수들을 정의하는 텍스트 검색 템플릿을 새로 만드는 명령이에요. 텍스트 검색 템플릿은 텍스트 검색 사전을 구현하는 함수들을 정의해요.
템플릿은 그 자체로는 유용하지 않고, 쓰이려면 사전으로 인스턴스화되어야 해요. 사전은 보통 템플릿 함수에 줄 매개변수를 지정해요. 스키마 이름을 주면 지정된 스키마에, 생략하면 현재 스키마에 만들어져요. 이 명령은 슈퍼유저만 쓸 수 있어요. 특히 템플릿과 사전을 분리하는 이유는, 템플릿이 사전 정의의 "안전하지 않은" 측면을 캡슐화하기 때문이에요. 사전을 정의할 때 설정할 수 있는 매개변수는 권한 없는 사용자가 설정해도 안전하므로, 사전을 만드는 것은 권한이 필요한 작업일 필요가 없어요.
출처: PostgreSQL 문서
본문
Synopsis
CREATE TEXT SEARCH TEMPLATE name (
[ INIT = init_function , ]
LEXIZE = lexize_function
)
Description
CREATE TEXT SEARCH TEMPLATE는 새 텍스트 검색 템플릿을 만들어요. 텍스트 검색 템플릿은 텍스트 검색 사전을 구현하는 함수들을 정의해요. 템플릿은 그 자체로는 유용하지 않지만, 쓰이려면 사전으로 인스턴스화되어야 해요. 사전은 보통 템플릿 함수에 줄 매개변수를 지정해요.
스키마 이름을 주면 텍스트 검색 템플릿이 지정된 스키마에 만들어지고, 생략하면 현재 스키마에 만들어져요.
CREATE TEXT SEARCH TEMPLATE를 쓰려면 슈퍼유저여야 해요. 잘못된 텍스트 검색 템플릿 정의가 서버를 혼란시키거나 심지어 크래시시킬 수 있기 때문에 이 제한이 있어요. 템플릿을 사전과 분리하는 이유는, 템플릿이 사전 정의의 "안전하지 않은" 측면을 캡슐화하기 때문이에요. 사전을 정의할 때 설정할 수 있는 매개변수는 권한 없는 사용자가 설정해도 안전하므로, 사전을 만드는 것은 권한 있는 작업일 필요가 없어요.
더 자세한 내용은 12장을 참고하세요.
Parameters
name
만들 텍스트 검색 템플릿의 이름이에요. 스키마 한정할 수 있어요.
init_function
템플릿의 초기화(init) 함수 이름이에요.
lexize_function
템플릿의 lexize 함수 이름이에요.
함수 이름은 필요하면 스키마 한정할 수 있어요. 각 타입의 함수에 대한 인자 목록은 미리 정해져 있으므로 인자 타입은 주지 않아요. lexize 함수는 필수지만, init 함수는 선택 사항이에요.
인자는 위에 보인 순서뿐 아니라 어떤 순서로든 나타날 수 있어요.
Compatibility
SQL 표준에는 CREATE TEXT SEARCH TEMPLATE 문이 없어요.
더 알아보기 (Learn more)
DROP TEXT SEARCH TEMPLATE— 템플릿을 삭제할 때 써요.CREATE TEXT SEARCH DICTIONARY— 만든 템플릿을 인스턴스화해 사전으로 써요.- Full Text Search — 텍스트 검색 전반을 다루는 12장이에요.