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

circle-info

참고

PREFERENCE, CLASS 등 인덱스의 설정과 관련된 자세한 내용은 “제3장 TEXT Indexing Elements”를 참고합니다.

  • 예제

circle-exclamation

인덱스 제거

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 특권이 있어야 함.

circle-info

참고

PREFERENCE, CLASS 등 인덱스의 설정과 관련된 자세한 내용은 “제3장 TEXT Indexing Elements”를 참고합니다.

  • 예제

circle-exclamation

인덱스 제거

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