TEXT 인덱스
CTXCAT 인덱스와 CONTEXT 인덱스의 생성/삭제 방법과 인덱스와 관련된 객체에 대해 설명합니다.
개요
Tibero TEXT는 텍스트로 구성된 데이터에 대한 질의 성능을 향상시킨 기능입니다.
Tibero TEXT에서는 책 제목, 온라인 쇼핑몰의 상품명 등 비교적 간단한 정보를 담고 있는 컬럼에서 검색 어 질의를 빠르게 처리하기 위한 CTXCAT 인덱스와 책 본문과 같은 큰 일관성있는 문서를 인덱싱하는 CONTEXT 인덱스를 제공하고 있습니다.
CTXCAT 인덱스
본 절에서는 CTXCAT 인덱스의 생성/제거, 관련 객체 제약 사항에 대해서 설명합니다.
인덱스 생성
CTXCAT 인덱스 생성 방법은 다음과 같습니다.
사용법
CREATE INDEX idx_name on [sch_name.]tbl_name (col_name) CTXCATINDEX
[PARAMETERS('preferences_class_name user_defined_preference_name')]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
참고
PREFERENCE, CLASS 등 인덱스의 설정과 관련된 자세한 내용은 “제3장 TEXT Indexing Elements”를 참고합니다.
예제
주의
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 특권이 있어야 함.
참고
PREFERENCE, CLASS 등 인덱스의 설정과 관련된 자세한 내용은 “제3장 TEXT Indexing Elements”를 참고합니다.
예제
주의
TEXT 인덱스 관련 쿼리를 실행할 때 내부적으로 'TEXT'라는 이름의 패키지를 사용하기 때문에 테이 블 이름을 'TEXT'로 지정하지 않습니다.
인덱스 제거
CTXCAT 인덱스, CONTEXT 인덱스를 제거하기 위한 SQL은 다른 인덱스의 경우와 동일합니다.
사용법
index_name
삭제할 TEXT 인덱스의 이름
예제
인덱스 관련 객체
CONTEXT 인덱스를 생성할 때 다음과 같은 객체가 생성됩니다.
DR$index_name$I
테이블
컬럼 텍스트의 토큰이 저장되는 테이블
DR$index_name$X
인덱스
토큰 테이블의 토큰 정보들에걸리는 인덱스
DR$index_name$K
테이블
토큰 테이블의 document ID와 실제 rowid가 저장되는 테이블
DR$index_name$P
인덱스
document ID 테이블의 docum ent ID, 실제 rowid에 걸리는 인덱스
DR$index_name$N
테이블
CONTEXT 인덱스에 반영되지 않은 row들의 정보를 기록하는 테이블
DR$index_name$S
테이블
CONTEXT 인덱스 sync 시 sync가 진행되고 있는 row들을 기록하는 내부 테이블
DR$index_name$SEQ
시퀀스
document ID를 발급하기 위한 시퀀스
DR$index_name$L
테이블
CONTEXT 인덱스가 걸린 테이블에 발생한 DML을 트랜잭션 단위로 기록하는 테이블
DR$index_name$LS
인덱스
$L 테이블의 rowid를 기록하는 테이블
인덱스 제약
CONTEXT 인덱스는 다음과 같은 경우에 제약을 가집니다.
여러 컬럼에 대해 하나의 CONTEXT 인덱스를 걸 수 없습니다.
CONTEXT 인덱스는 글로벌 파티셔닝 될 수 없습니다. 단, 글로벌 논파티션드 인덱스는 생성할 수 있습니다.
CONTEXT 인덱스는 BASIC_LEXER의 경우 VARCHAR2 타입과 CLOB 타입인 컬럼에 대해서만 생성할 수 있습니다.
CONTEXT 인덱스는 JAPANESE_LEXER의 경우 VARCHAR2 타입인 컬럼에 대해서만 생성할 수 있습니다.
Last updated

