テキスト検索索引の作成
Db2 Text Search 用にデータベースを有効にしたら、検索したいテキストを含む列にテキスト検索インデックスを作成できます。
始める前に
- 索引表に対する CONTROL 特権
- 索引表に対する INDEX 特権と、データベースに対する IMPLICIT_SCHEMA 権限または索引表スキーマに対する CREATEIN 特権のいずれか
- DATAACCESS を持つ DBADM 権限
自動索引更新をスケジュールするには、インスタンス所有者は管理用タスク・スケジューラー表に対する DBADM 権限または CONTROL 特権のいずれかを持っている必要があります。
この表の主キーが存在している必要があります。 主キーが存在しない場合は、索引を作成する前に主キーを作成してください。
このタスクについて
db2ts "CREATE INDEX MYSCHEMA.MYTEXTINDEX FOR TEXT ON PRODUCT(NAME)
UPDATE FREQUENCY d(1,3) h(0,12) m(0) UPDATE MINIMUM 5" CALL SYSPROC.SYSTS_CREATE('myschema', 'myTextIndex', 'product (name)',
'UPDATE FREQUENCY D(1,3) H(0,12) M(0)' 'UPDATE MINIMUM 5', 'en_US', ?)索引を作成するときに、LANGUAGE オプションを使用して、そのロケール (言語と地域) を指定できます。 ロケールを判別するために文書が自動的にスキャンされるようにするには、 LANGUAGE を 自動に設定します。 LANGUAGEを指定しない場合は、デフォルトが使用されます。 このデフォルトは、DEFAULTNAME='LANGUAGE' になっている SYSIBMTS.TSDEFAULTS の DEFAULTVALUE によって決まります。 (この場合、DEFAULTVALUE はデータベースでテキスト検索が使用可能にされるときに設定されます。 データベース・テリトリーがいずれかのサポートされている文書ロケールにマップできる場合、この値はデータベース・テリトリーから決定されます。 サポートされている文書ロケールの判別にデータベース・テリトリーが使用できない場合は、DEFAULTVALUE は AUTO に設定されます。)
の制約事項
- 索引内のテキスト列は、以下にあげる、サポートされているタイプのいずれかでなければなりません。
- CHAR
- VARCHAR
- LONG VARCHAR
- CLOB
- GRAPHIC
- VARGRAPHIC
- LONG VARGRAPHIC
- DBCLOB
- BLOB
- XML
- テキスト検索関連オブジェクトは、 DB2® 命名規則に従うだけでなく、それらの ID にも以下の文字のみを含める必要があります。
- [A-Za-z][A-Za-z0-9@#$_]* または
- "[A-Za-z ][A-Za-z0-9@#$_ ]*"
- テキスト検索索引を含むスキーマの名前
- テキスト検索索引が関連付けられている表の名前
- テキスト列の名前
- テキスト検索索引の名前
プロシージャー
次のいずれかの方法でテキスト検索索引を作成します。
例
例えば、SAMPLE データベースの PRODUCT 表に、PRODUCT ID、NAME、PRICE、DESCRIPTION などの列があるとします。 NAME 列に対して MYSCHEMA.MYTEXTINDEX というテキスト検索索引を作成する場合は、次のようにコマンドを発行するかストアード・プロシージャーを呼び出します。
db2ts "CREATE INDEX MYSCHEMA.MYTEXTINDEX FOR TEXT ON PRODUCT(NAME)"CALL SYSPROC.SYSTS_CREATE('MYSCHEMA', 'MYTEXTINDEX', 'PRODUCT(NAME)', '', 'en_US',?)db2ts "CREATE INDEX MYSCHEMA.MYXMLINDEX FOR TEXT ON PRODUCT(DESCRIPTION)"またはCALL SYSPROC.SYSTS_CREATE('MYXMLINDEX', 'MYXMLINDEX',
'PRODUCT (DESCRIPTION)', '', 'en_US', ?)