TEXT Indexing Elements

Tibero TEXT 인덱스와 관련된 Elements에 대해 설명합니다.

개요

Tibero TEXT 인덱스를 생성하는 저장공간, STOPLIST, LEXER 등 각종 설정에 대한 파라미터를 설정할 수 있습니다.

PREFERENCE 클래스
설명

STORAGE

TEXT 인덱스를 생성하는 경우 생성되는 인덱스와 테이블의 저장 공간을 지정

LEXER

TEXT 인덱스를 생성하는 경우 사용되는 LEXER의 설정을 함

WORDLIST

TEXT 인덱스를 생성하는 경우 생성되는 토큰에 관련된 설정을 함

STOPLIST

TEXT 인덱스에서 제외한 단어를 지정

DATASTORE

TEXT 인덱스를 생성하는 경우 문서 저장 방법을 지정

FILTER

문서를 색인하기 위해 필터링되는 방법을 지정

SECTION GROUP

문서를 여러 섹션으로 나누는 기준을 정의

PREFERENCE를 생성하기 위해서 TEXT_DDL.CREATE_PREFERENCE를 사용합니다. Tibero TEXT에서 는 앞에서 설명한 7가지 PREFERENCE 클래스에 대하여 각각 이미 정의된 PREFERENCE를 제공합니다.

사용자는 정의된 PREFERENCE를 사용하여 새로운 PREFERENCE를 생성하여 사용할 수 있습니다. PREF ERENCE 생성 후 TEXT_DDL.SET_ATTRIBUTE를 사용하여 속성값을 변경할 수 있습니다.

STORAGE

TEXT 인덱스를 생성하는 경우 생성되는 인덱스와 테이블의 저장 공간을 지정합니다. STORAGE 클래스에는 BASIC_STORAGE가 정의되어 있으며 속성은 다음과 같습니다.

속성
설명

I_TABLE_CLAUSE

TEXT 인덱스 토큰이 저장되는 테이블의 테이블 스페이스

I_ROWID_INDEX_CLAUSE

토큰 테이블의 ROWID 컬럼에 대한 인덱스의 테이블 스페이스

I_INDEX_CLAUSE

토큰 테이블의 토큰 컬럼에 대한 인덱스의 테이블 스페이스

K_TABLE_CLAUSE

추후 추가될 기능을 위해 예약된 속성

P_TABLE_CLAUSE

추후 추가될 기능을 위해 예약된 속성

N_TABLE_CLAUSE

추후 추가될 기능을 위해 예약된 속성

R_TABLE_CLAUSE

매핑 테이블의 ROWID 컬럼에 대한 인덱스의 테이블 스페이스

S_TABLE_CLAUSE

추후 추가될 기능을 위해 예약된 속성

LEXER

TEXT 인덱스를 생성하는 경우 사용할 LEXER에 대한 설정을 하기 위한 클래스입니다.

BASIC_LEXER

공백/특수문자로 구분하는 LEXER입니다.

다음은 BASIC_LEXER에 적용할 수 있는 속성에 대한 예제입니다.

속성
설명

MIXED_CASE

  • 대소문자 구별하여 인덱싱할지 여부를 결정

  • TRUE인 경우 구별하여 인덱스 (속성값: TRUE/FALSE, 기본값: FALSE)

BASE_LETTER

  • Umlaut, acute accent와 같은 base letter들을 구분하여 인덱싱할지 여부를 검사

  • TRUE인 경우 구분하지 않고 인덱스 (속성값: TRUE/FALSE, 기본값: FALSE)

WHITESPACE

  • whitespace로 지정한 문자들은 punctuation 및 newline 문자와 결합해 sen tence 및 paragraph의 구분자 역할을 하여 sentence 및 paragraph 검색에 사용됨

  • 기본값은 공백 또는 탭 문자이고 사용자가 whitespace를 지정했을 경우 기본값 외에도 사용자가 지정한 값으로 whitespace가 인식됨 (속성값: 문자열, 기본값: 공백 또는 탭 문자)

JAPANESE_LEXER

일본어 텍스트에서 토큰을 만들기 위한 LEXER입니다. JAPANESE_LEXER는 일본어 형태학(morphological) 분석기입니다.

다음은 JAPANESE_LEXER에 적용할 수 있는 속성에 대한 예제입니다.

속성
설명

ASCII_MIXED_CASE

  • ASCII 영역의 문자들에 대하여 대소문자 구별하여 인덱싱할지 여부를 결정

  • TRUE인 경우 구별하여 인덱스 (속성값: TRUE/FALSE, 기본값: FALSE)

BASE_LETTER

  • 특수문자(/, -, ·)와 같은 일본어의 delimeter를 구분자로 사용할 것인지 여부를 결정

  • TRUE인 경우 구분하지 않고 인덱스 (속성값: TRUE/FALSE, 기본값: FALSE)

WORLD_LEXER

여러 언어가 포함된 문서에서 토큰을 만들기 위한 LEXER입니다. 언어를 자동으로 감지하여 토큰을 만듭니다. 띄어쓰기가 있는 언어는 띄어쓰기 기준으로 토큰을 생성하고, 띄어쓰기가 없는 일본어나 중국어의 경우 에는 2-gram으로 토큰을 만듭니다.

WORLD_LEXER는 다음과 같은 제약을 가집니다.

  • UTF8 character set에서만 WORLD_LEXER를 지원합니다.

  • 2-gram으로 토큰을 생성하는 일본어나 중국어는 와일드카드를 지원하지 않습니다.

  • CTXCAT 인덱스는 사용할 수 없고, CONTEXT 인덱스만 사용 가능합니다.

3.4. WORDLIST

TEXT 인덱스를 생성하는 경우 생성되는 토큰의 설정과 관련된 클래스입니다. 현재 BASIC_WORDLIST가 정의되어 있으며 속성은 다음과 같습니다.

속성
설명

PREFIX_INDEX

YES로 설정하는 경우 단어의 접두어를 별도로 인덱싱하여 접두어 검색 성능을 향상시킴 (속성값: YES/NO, 기본값: NO)

PREFIX_MIN_LENGTH

PREFIX_INDEX이 YES일 경우 인덱싱하는 접두어의 최소 길이를 지정 (범위: 1 ~ 64, 기본값: 1)

PREFIX_MAX_LENGTH

PREFIX_INDEX이 YES일 경우 인덱싱하는 접두어의 최대 길이를 지정 (범위: 1 ~ 64, 기본값: 64)

STOPLIST

STOPLIST는 인덱스에서 제외될 단어를 지정합니다. DEFAULT_STOPLIST, EMPTY_STOPLIST가 정의 되어있습니다. DEFAULT_STOPLIST에는 기본적인 STOPWORD가 입력되어 있습니다. 자세한 내용은 “Ap pendix A. STOPWORDS”를 참고합니다. EMPTY_STOPLIST는 STOPWORD가 없는 STOPLIST를 의미한 다.

TEXT_DDL.CREATE_STOPLIST를 사용하여 새로운 STOPLIST를 생성하고, TEXT_DDL.ADD_STOPWORD를 사용하여 STOPWORD를 추가할 수 있습니다.

DATASTORE

DATASTORE는 문서 저장 방법을 지정 할 수 있습니다. DATASTORE 클래스에는 DIRECT_DATASTORE와 MULTI_COLUMN_DATASTORE가 정의되어 있습니다.

DIRECT_DATASTORE

DIRECT_DATASTORE를 사용하면 데이터는 텍스트 컬럼에 내부적으로 저장됩니다. 각 row는 단일 문서로 인덱싱됩니다. DIRECT_DATASTORE 유형에는 속성이 없습니다.

MULTI_COLUMN_DATASTORE

MULTI_COLUMN_DATASTORE는 데이터가 여러 개의 컬럼에 저장되어 있을 때 사용합니다. MULTI_COL UMN_DATASTORE로 지정된 컬럼들은 각 row별로 합쳐져서 인덱싱됩니다.

속성
설명

COLUMNS

인덱싱할 컬럼들을 콤마(,)로 구분하여 지정합니다. VARCHAR, CLOB, NUM BER, DATE 타입의 컬럼들만 지정할 수 있으며, 컬럼 이름 외에도 컬럼에 대한 expression 및 PSM 함수를 지정할 수 있습니다. (속성값: STRING)

DELIMITER

각 컬럼 텍스트를 구분하는 구분자를 지정합니다.

  • COLUMN_NAME_TAG : 각 컬럼의 텍스트는 XML 형식의 시작/마침 태그로 구분되며, 각 태그는 컬럼 이름을 가집니다. (기본값)

  • NEWLINE : 각 컬럼의 텍스트는 newline으로 구분됩니다.

FILTER

문서를 색인하기 위해 필터링되는 방법을 결정합니다. FILTER 클래스에는 NULL_FILTER만 정의되어 있습니다.

NULL_FILTER

NULL_FILTER는 필터링을 하지 않습니다. 일반 문서, HTML, XML을 그대로 인덱싱합니다. NULL_FILTER 유 형에는 속성이 없습니다.

SECTION GROUP

문서구조를 여러 섹션으로 나누는 기능입니다. 섹션을 정의하지 않는 NULL_SECTION_GROUP만 정의되 어 있습니다. TEXT_DDL.CREATE_SECTION_GROUP을 사용하여 새로운 SECTION_GROUP을 생성할 수 있습니다.

TEXT_DDL 패키지

다음은 PREFERENCE를 생성하고 관리하기 위해 TEXT_DDL 패키지에서 제공하는 프러시저입니다.

이름
설명

ADD_SPECIAL_SECTION

SECTION GROUP에 special section인 SENTENCE 또는 PARA GRAPH를 추가하기 위한 프로시저

ADD_STOPWORD

STOPLIST에 STOPWORD를 추가하기 위한 프러시저

CREATE_PREFERENCE

새로운 PREFERENCE를 정의하는 프러시저

CREATE_SECTION_GROUP

새로운 SECTION_GROUP을 정의하는 프러시저

CREATE_STOPLIST

새로운 STOPLIST를 만들기 위한 프러시저

DROP_PREFERENCE

PREFERENCE를 삭제하기 위한 프러시저

DROP_SECTION_GROUP

SECTION_GROUP을 삭제하기 위한 프러시저

DROP_STOPLIST

STOPLIST를 삭제하기 위한 프러시저

REMOVE_SECTION

SECTION GROUP에서 SECTION을 삭제하기 위한 프로시저

REMOVE_STOPWORD

STOPLIST에서 STOPWORD를 삭제하기 위한 프러시저

SET_ATTRIBUTE

PREFERENCE의 속성값을 설정하기 위한 프러시저

ADD_SPECIAL_SECTION

SECTION GROUP에 Special Section인 SENTENCE 또는 PARAGRAPH을 추가하기 위한 프로시저입니다. Special Section을 추가함으로써 WITHIN 연산자를 사용한 SENTENCE 및 PARAGRAPH 검색이 가능해 진다.

Special Section을 가진 SECTION GROUP을 지정하여 인덱스를 생성할 때 정해진 구분자를 기준으로Special Section들을 토큰화합니다.

SENTENCE의 구분 기준은 [단어][punctuation][whitespace] 또는 **[단어][punctuation][newline]**이고, PARAGRAPH의 구분 기준은 [단어][punctuation][newline][whitespace] 또는 **[단어][punctuation][new line][newline]**입니다. 이때 punctuation 기본값은 [. / ! / ?], newline 기본값은 [\n / \r]이며 사용자가 따로 punctuation 및 newline 값을 변경할 수 없습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

group_name

추가할 대상의 SECTION GROUP 이름

section_name

추가할 section 이름으로 'SENTENCE' 또는 'PARAGRAPH'를 지정할 수 있음

  • 예제

ADD_STOPWORD

STOPWORD 타입에 새로운 STOPWORD를 추가하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

stoplist_name

추가할 대상의 STOPLIST 이름

stopword

추가할 STOPWORD

lang

STOPWORD가 적용될 언어 (미지원)

  • 예제

CREATE_PREFERENCE

새로운 PREFERENCE를 만들기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

udef_pref_name

사용자가 정의할 PREFERENCE 이름

pdef_pref_name

Tibero TEXT에서 정의된 PREFERENCE 이름

  • 예제

CREATE_SECTION_GROUP

새로운 SECTION_GROUP을 만들기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

udef_pref_name

사용자가 정의할 PREFERENCE 이름

pdef_pref_name

Tibero TEXT에서 정의된 PREFERENCE 이름

  • 예제

CREATE_STOPLIST

새로운 STOPLIST을 만들기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

stoplist_name

생성할 STOPLIST 이름

stoplist_type

  • 생성할 STOPLIST의 타입

  • 현재 DEFAULT_STOPLIST와 EMPTY_STOPLIST가 있음

  • 예제

DROP_PREFERENCE

생성한 PREFERENCE를 삭제하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

udef_pref_name

삭제할 PREFERENCE 이름

  • 예제

DROP_SECTION_GROUP

생성한 SECTION_GROUP을 삭제하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

udef_pref_name

삭제할 SECTION_GROUP 이름

  • 예제

DROP_STOPLIST

STOPLIST를 삭제하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

stoplist_name

삭제할 STOPLIST 이름

  • 예제

REMOVE_SECTION

SECTION GROUP에서 SECTION을 삭제하기 위한 프로시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

group_name

삭제할 대상의 SECTION GROUP 이름

section_name

삭제할 SECTION 이름

  • 예제

REMOVE_STOPWORD

STOPLIST에서 STOPWORD를 삭제하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

stoplist_name

삭제할 대상의 STOPLIST 이름

stopword

삭제할 STOPWORD

lang

STOPWORD가 적용되는 언어 (미지원)

  • 예제

SET_ATTRIBUTE

생성된 PREFERENCE의 속성값을 설정하기 위한 프러시저입니다.

  • 프로토타입

  • 파라미터

파라미터
설명

udef_pref_name

속성값을 변경할 사용자가 정의한 PREFERENCE

attribute_name

변경할 대상 속성

value

변경할 값

  • 예제

CTX_DDL 패키지

CONTEXT 인덱스를 관리하기 위한 CTX_DDL 패키지에서 제공하는 프러시저들을 알아봅니다.

OPTIMIZE_INDEX

인덱스를 동기화 한 후 인덱스를 최적화하는 방법입니다. 인덱스를 최적화하면 이전 데이터가 제거되고 최 소화되므로 쿼리 응답시간이 향상 될 수 있습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

idx_name

최적화할 인덱스 이름

optlevel

최적화 방법을 설정

다음과 같이 FAST, FULL 2가지 방법이 있음

  • FAST : 중복된 토큰을 합쳐주고, 이전 데이터(삭제된 행)를 제거하지 않음

  • FULL : 중복된 토큰을 합쳐주고, 이전 데이터(삭제된 행)를 제거

maxtime

최대 최적화 시간을 설정 (미지원)

token

최적화할 토큰을 설정 (미지원)

part_name

로컬 인덱스의 경우 파티션 이름을 설정

token_type

최적화할 토큰 타입을 설정 (미지원)

parallel_degree

최적화할 parallel_degree를 설정 (미지원)

  • 예제

SYNC_INDEX

기본 테이블에 대한 삽입, 업데이트 및 삭제가 있을 때 CONTEXT 인덱스의 자동 동기화를 위해 사용됩니다.

  • 프로토타입

  • 파라미터

파라미터
설명

idx_name

최적화할 인덱스 이름

memory

  • 동기화에 사용할 런타임 메모리를 설정

  • 1K에서 256G까지의 값을 지정할 수 있음

part_name

로컬 인덱스의 경우 파티션 이름을 설정

parallel_degree

최적화할 parallel_degree를 설정 (미지원)

maxtime

최대 최적화 시간을 설정 (미지원)

locking

SYNC_INDEX가 동일한 인덱스 또는 파티션에서 이미 다른 동기화가 실행되 고 있는 상황을 처리하는 방법을 구성 (미지원)

  • 예제

CTX_OUTPUT 패키지

CONTEXT 인덱스를 관리하기 위한 CTX_OUTPUT 패키지에서 제공하는 프러시저들을 알아봅니다.

END_LOG

인덱싱 과정의 로깅을 중지합니다.

  • 프로토타입

  • 예제

START_LOG

인덱싱 과정의 로깅을 시작합니다.

  • 프로토타입

  • 파라미터

파라미터
설명

file_name

로그 파일의 이름을 지정

write_option

  • 이미 로그 파일이 존재하는 경우 파일을 덮어 쓸지 새로운 로그 파일을 추가 할지 지정

  • 기본값은 파일을 덮어 쓰는 것임

  • 예제

Last updated