TEXT 인덱스
본 장에서는 CTXCAT 인덱스와 CONTEXT 인덱스의 생성/삭제 방법과 인덱스와 관련된 객체에 대해 설명합니다.
Tibero TEXT는 텍스트로 구성된 데이터에 대한 질의 성능을 향상시킨 기능입니다.
Tibero TEXT에서는 책 제목, 온라인 쇼핑몰의 상품명 등 비교적 간단한 정보를 담고 있는 컬럼에서 검색어 질의를 빠르게 처리하기 위한 CTXCAT 인덱스와 책 본문과 같은 큰 일관성있는 문서를 인덱싱하는 CONTEXT 인덱스를 제공하고 있습니다.
CTXCAT 인덱스
CTXCAT 인덱스의 생성/제거, 관련 객체 제약 사항에 대해서 설명합니다.
인덱스 생성
CTXCAT 인덱스 생성 방법은 다음과 같습니다.
사용법
idx_name
생성할 CTXCAT 인덱스의 이름이다.
sch_name
인덱스를 생성할 대상 테이블의 소유자를 설정한다.
tbl_name
인덱스를 생성할 대상 테이블을 설정한다.
col_name
인덱스를 생성할 대상 column VARCAHR2 TYPE이어야 한다.
CTXCATINDEX
CTXCAT 인덱스로 생성함을 의미하는 예약어이다.
parameters
CTXCAT 인덱스를 생성할 때 사용할 설정을 지정하는 예약어이다.
preferences_class_name
CTXCAT 인덱스를 생성할 때 설정을 지정할 클래스이다.
user_defined_prefer
ence_name
위에서 지정된 CLASS에 대해 생성한 PREFERENCE이다.
예제
주의
TEXT 인덱스 관련 쿼리를 실행할 때 내부적으로 'TEXT'라는 이름의 패키지를 사용하기 때문에 테이블 이름을 'TEXT'로 지정하지 않습니다.
인덱스 제거
CTXCAT 인덱스, CONTEXT 인덱스를 제거하기 위한 SQL은 다른 인덱스의 경우와 동일합니다.
사용법
index_name
삭제할 TEXT 인덱스의 이름이다.
예제
인덱스 관련 객체
CTXCAT 인덱스를 생성할 때 다음과 같은 객체가 생성됩니다.
DR$index_name$I
테이블
컬럼 텍스트의 토큰이 저장되는 테이블이다.
DR$index_name$R
인덱스
토큰 테이블의 rowid 컬럼에 걸리는 인덱스이다.
DR$index_name$X
인덱스
토큰 테이블의 토큰 컬럼과 rowid 컬럼에 걸리는 인덱스이다.
DR$index_name_TRG_I
트리거
CTXCAT 인덱스가 걸린 컬럼에 데이타가 입력될 때 입력 데이터를 토큰 테이블에 입력하기 위한 트리거이다.
DR$index_name_TRG_D
트리거
CTXCAT 인덱스가 걸린 컬럼에 데이타가 삭제될 때 해당 토큰을 삭제하기 위한 트리거이다.
DR$index_name_TRG_U
트리거
CTXCAT 인덱스가 걸린 컬럼에 데이타가 수정될 때 해당 토큰을 수정하기 위한 트리거이다.
인덱스 제약
CTXCAT 인덱스는 다음과 같은 경우에 제약을 가집니다.
여러 컬럼에 대해 하나의 CTXCAT 인덱스를 설정할 수 없습니다.
TEXT 인덱스는 파티션이 될 수 없습니다.
TEXT 인덱스는 VARCHAR2 타입인 컬럼에 대해서만 생성할 수 있습니다.
CONTEXT 인덱스
CONTEXT 인덱스의 생성/제거, 관련 객체 제약 사항에 대해서 설명합니다.
인덱스 생성
CONTEXT 인덱스 생성 방법은 다음과 같습니다.
사용법
idx_name
생성할 CONTEXT 인덱스의 이름이다.
sch_name
인덱스를 생성할 대상 테이블의 소유자를 설정한다.
tbl_name
인덱스를 생성할 대상 테이블을 설정한다.
CTXSYS.CONTEXT
CONTEXT 인덱스로 생성함을 의미하는 예약어이다.
parameters
CONTEXT 인덱스를 생성할 때 사용할 설정을 지정하는 예약어이다.
preferences_class_name
CONTEXT 인덱스를 생성할 때 설정을 지정할 클래스이다.
user_defined_prefer ence_name
지정된 CLASS에 대해 생성한 PREFERENCE이다.
sync(option)
CONTEXT 인덱스의 자동 동기화를 위해 사용 된다. 다음과 같이 on commit, every 2가지 방법이 있다.
ON COMMIT : 커밋 후 인덱스를 동기화한다. 동기화가 끝날 때 까지 커밋이 리턴되지 않는다.
EVERY : interval-string 값으로 지정된 일정한 간격으로 인덱스를 자 동으로 동기화 한다. EVERY를 사용하는 동기화는 작성자가 create job 특권이 있어야 한다.
예제
주의
TEXT 인덱스 관련 쿼리를 실행할 때 내부적으로 'TEXT'라는 이름의 패키지를 사용하기 때문에 테이블 이름을 'TEXT'로 지정하지 않습니다.
인덱스 제거
CTXCAT 인덱스, CONTEXT 인덱스를 제거하기 위한 SQL은 다른 인덱스의 경우와 동일합니다.
사용법
index_name
삭제할 TEXT 인덱스의 이름이다.
예제
인덱스 관련 객체
CONTEXT 인덱스를 생성할 때 다음과 같은 객체가 생성됩니다.
DR$index_name$I
테이블
컬럼 텍스트의 토큰이 저장되는 테이블이다.
DR$index_name$X
인덱스
토큰 테이블의 토큰 컬럼과 rowid 컬럼에 걸리는 인덱스이다.
DR$index_name$K
테이블
토큰 테이블의 document ID가 저장되는 테이블이다.
인덱스 제약
CONTEXT 인덱스는 다음과 같은 경우에 제약을 가집니다.
여러 컬럼에 대해 하나의 CONTEXT 인덱스를 설정할 수 없습니다.
CONTEXT 인덱스는 글로벌 파티션이 될 수 없습니다.
CONTEXT 인덱스는 BASIC_LEXER, CHINESE_LEXER의 경우 VARCHAR2 타입과 CLOB 타입인 컬럼에 대해서만 생성할 수 있습니다.
CONTEXT 인덱스는 JAPANESE_LEXER의 경우 VARCHAR2 타입인 컬럼에 대해서만 생성할 수 있습니다.
Last updated