このコマンドは、DB2 Net Search Extender フル・テキスト照会で使用するために、テキスト列上にフル・テキスト索引を作成します。
分散 DB2 環境では、フル・テキスト索引は、ユーザー表が定義された表スペースのすべてのパーティションに作成されます。表スペースの配布に対する以降の変更は許可されておらず、管理コマンドおよび検索処理において、予期しない動作につながります。
許可
DB2 カタログ・ビューによると、 このコマンドのユーザー ID は、フル・テキスト索引が作成された表に対して CONTROL 特権が必要です。
コマンド構文
>>-CREATE-INDEX--+------------------+--index-name FOR TEXT------> '-index-schema-"."-' >--ON--+------------------+--table-name-------------------------> '-table-schema-"."-' >--+-(text-column-name)--------------------------------------------+--> '-+-----------------------+--function-name-(-text-column-name-)-' '-|function-schema "."|-' >--+------------------+--+----------------------------+---------> '-|attribute-list|-' '-|text-default-information|-' >--+--------------------------+--+-------------------+----------> '-|update-characteristics|-' '-|storage-options|-' >--+-------------------------------+----------------------------> '-|cache-search-result-options|-' >--+-------------------------------+----------------------------> '-|index-configuration-options|-' >--+----------------------+------------------------------------>< '-|connection-options|-' attribute-list: .-','------------------------------------------. V | |--ATTRIBUTES--(----SQL-column-expression--+-------------------+-+--)--| '-AS-attribute-name-' text-default-information: |--+--------------+--+--------------------+---------------------> '-CCSID--ccsid-' '-LANGUAGE--language-' >--+-----------------------------------------+------------------| '-FORMAT--format--+---------------------+-' '-|model-information|-' model-information: |--DOCUMENTMODEL--documentmodel-name--IN--modelfilepath---------> >--+--------------------+---------------------------------------| '-USING-CCSID--ccsid-' update-characteristics: |--+------------------------------------------+-----------------> '-UPDATE-FREQUENCY--+-NONE---------------+-' '-|update-frequency|-' >--+-|incremental-update-characteristics|-+---------------------| '-RECREATE INDEX ON UPDATE-------------' incremental-update-characteristics: |--+----------------------------+-------------------------------> '-UPDATE-MINIMUM--minchanges-' >--+---------------------------+--------------------------------> '-REORGANIZE--+-AUTOMATIC-+-' '-MANUAL----' >--+---------------------------------+--------------------------| +-COMMITCOUNT-FOR-UPDATE--count---+ '-|capture-table-characteristics|-' capture-table-characteristics: |--REPLICATION-CAPTURE-TABLE------------------------------------> >--+--------------------------+--capture-table-name-------------> '-capture-table-schema-"."-' >--CONTROL TABLE SCHEMA--capture-control-schema-----------------| update-frequency: |--D--(--+-*---------+--)--H--(--+-*----------+--)--M-----------> | .-,-----. | | .-,------. | | V | | | V | | '---0...6-+-' '---0...23-+-' .-,------. V | >--(----0...59-+--)---------------------------------------------| storage-options: |--+----------------------------+-------------------------------> '-INDEX-DIRECTORY--directory-' >--+-------------------------------+----------------------------> '-WORK-DIRECTORY--workdirectory-' >--+-------------------------------------------+----------------| '-ADMINISTRATION-TABLES-IN--tablespace-name-' cache-search-results-options: |--CACHE TABLE--------------------------------------------------> .-','-------------------------------------------. V | >--(----SQL-column-expression--+--------------------+-+--)------> '-AS--attribute-name-' >--+-------------------------------+--+---------------------+---> +-PERSISTENT--+---------------+-+ '-PCTFREE--percentage-' | '-IN--directory-' | '-TEMPORARY---------------------' >--MAXIMUM CACHE SIZE--memsize----------------------------------> >--+------------------------------------------------------+-----> '-INITIAL SEARCH RESULT ORDER--(--SQL-order-by-list--)-' >--+------------------------------------------------------+-----| '-KEY COLUMNS FOR INDEX ON VIEW--(SQL-columnname-list)-' index-configuration-options: .-,------------. V | |--INDEX CONFIGURATION--(----option-value-+--)------------------| connection-options: |--CONNECT-TO--database-name--+-------------------------------+--| '-USER--userid--USING--password-'
コマンド・パラメーター
詳細については 付録 C, Net Search Extender インフォメーション・カタログを参照してください。索引名は、有効な DB2 索引名でなければならないことに注意してください。
表名が DB2 基本表を参照しない場合は、次の制限があることに注意してください。
列タイプがこれらのどれにも当てはまらない場合は、function-schema.function-name を 使用して、トランスフォーメーション関数を指定し、列タイプを変換します。
データ・リンク列を使用する場合、 参照される内容が索引付けのために取り出されることに注意してください。 この処理はデータ・リンク値の一部であるプロトコルを経由します (例:Http)。 "file" または "unc" 以外のプロトコルを使用する場合は、データ・リンク値の一部であるサーバーによって、これらがサポートされていることを確認してください。 ファイル内容を取得するためにプロキシー・サーバーが必要になることもあるので、データベース管理者は、索引を作成する前に DB2EXT.PROXYINFORMATION 表でプロキシー・サーバーを指定できます。
同じ列に複数の索引が許可されていますが、 これは次の条件を満たす場合だけであることに注意してください。
この場合、CONTAINS、SCORE または NUMBEROFMATCHES 引き数によって選択された索引は問題なく使用することができます。
以下の規則を使用して、式の属性名を定義します。
例: ATTRIBUTES (CAST(JULIAN_DAY(date) AS DOUBLE) as day, (price1+price2)/2 as avg_price)
引用符のない属性は英大文字にマップされ、検索時には大文字で指定する必要があるので、注意してください。
構造化文書フォーマットの場合、文書モデル・ファイルで情報を指定できます。 文書モデルが指定されない場合、文書のテキストは、デフォルトの文書モデルを使用して索引付けされます。文書モデルを参照してください。
フォーマット・キーワードが指定されていない場合、デフォルト値は、DB2EXT.DBDEFAULTS ビューから取られます。 ここで、DEFAULTNAME='FORMAT' です。
文書モデルを検索条件で参照する必要はないので、 代わりにモデル・ファイルで指定されるすべてのセクション名を使用してください。 文書モデルの詳細については、 構造化文書を使用する作業を参照してください。 文書モデルは、CREATE INDEX コマンド実行時にのみ読み取られるので、 それ以降のあらゆる変更は、この索引に関して認識されないことに注意してください。
分散 DB2 環境では、 modelfilepath がすべてのノード上でアクセス可能になるように ファイル共有システムを使用してください。
デフォルト値は、DB2EXT.DBDEFAULTS ビューから取られます。ここで、DEFAULTNAME='UPDATEFREQUENCY' です。
この値は、DB2TEXT UPDATE コマンドでは、無視されることに注意してください。 インクリメンタル更新の場合、ログ表およびトリガーがなければ変更の数を利用できないので、 このオプションは、RECREATE INDEX ON UPDATE オプションと併用することはできません。
分散データベースの場合、UPDATE MINIMUM は各ノードでチェックされます。
REORGANIZE MANUAL は、 手動の UPDATE コマンド (REORGANIZE オプションを指定) と一緒でなければ実行できません。
REORGANIZE 文節が省略された場合、デフォルト値は、DB2EXT.DBDEFAULTS ビューから取られます。 ここで、DEFAULTNAME='AUTOMATICREORG' です。
REORGANIZE オプションの詳細に関しては、UPDATE INDEXを参照してください。
capture-control-schema は、レプリケーション・コントロール表のスキーマ名です (例: ローカル DB2 上での IBMSNAP_PRUNE_SET)。 レプリケーション・コントロール表は、レプリケーションを設定した後、 ローカル DB2 システム上のニックネームとして使用可能である必要があります。
少なくとも、 以下のキャプチャー・コントロール表で使用可能なニックネームがある必要があります。
DB2 レプリケーション・センターはリモート・キャプチャー表とキャプチャー・コントロール表のローカル・ニックネームを必ずしも自動的に作成するわけではないため、 この作業を手動にすることができます。 この作業は、テキスト索引が作成される表のニックネームを作成することに似ています。
ユーザー表ニックネームとキャプチャー表の主キー列の列名は一致している必要があります。 また、キャプチャー表ニックネームの列 IBMSNAP_OPERATION、IBMSNAP_COMMITSEQ、 および IBMSNAP_INTENTSEQ の名前は変更しないようにしてください。
索引を作成した後、 列名 DB2EXT.TEXTINDEXES(LOGVIEWNAME) と DB2EXT.TEXTINDEXES(LOGVIEWSCHEMA) は両方ともレプリケーション・キャプチャー表のローカル名を参照します。
Net Search Extender には DB2 レプリケーション・センターの機能のすべては必要ないので、 変更データ表 (CD) または整合変更データ (CCD) 表は以下の規則に従っている必要があります。
その他の前提条件には、以下のものがあります。
注意および制約事項 |
---|
正しいソース表名を登録表に挿入するようにしてください。 リモート DBMS の種類によって、 リモート表名を使用しなければならない場合と、 ローカル・ニックネームを使用しなければならない場合があります。
ローカル・ユーザーがニックネームを使用してリモート・データ・ソースにアクセスできるようにユーザー・マッピングがなければならず、 リモート・ユーザーは表に対してコントロール特権を持っている必要があります。 DB2 インスタンス所有者ユーザー ID がローカル・ユーザー ID と異なる場合、DB2 インスタンス所有者ユーザー ID 用の追加ユーザー・マッピングが必要です。 指定された基本表名は、1 つのニックネームに対するビューであってはなりません。 それは、ビューは複数のニックネームをカバーすることができ、 複数の CD および CCD 表を含めることもできるからです。 レプリケーション・キャプチャー文節には CD または CCD 表を 1 つだけ指定することもできるので、 ニックネームのビューはサポートされていません。 また、リモート・ビューのニックネームは、主キーが欠落しているため、サポートできません。 CD または CCD 表はニックネームでなければならず、ビューまたは別名であってはなりません。 |
「DB2 レプリケーションのガイドおよびリファレンス バージョン 8」については、関連情報を参照してください。
索引の COMMITCOUNT FOR UPDATE 値は、DB2EXT.TEXTINDEXES.COMMITCOUNT にあります。これは、ALTER INDEX コマンドを使用して、索引ごとに変更できます。また、UPDATE FREQUENCY 指定に従ってスケジュール済みの更新処理にも適用されます。0 の値は、更新が 1 つのトランザクションで完了したことを 意味し、0 より大きい値は、1 つのトランザクションで処理する文書の数を指定します。
commitcount を使用すると、パフォーマンスに影響します。 詳しくは、パフォーマンスに関する考慮事項を参照してください。
注 |
---|
ユーザー表ではトリガーは作成されず、ログ表も作成されません。 |
デフォルト値は、DB2EXT.DBDEFAULTS ビューから取られます。ここで、DEFAULTNAME=INDEXDIRECTORY' です。サブディレクトリー NODE<nr> は、サーバーの論理ノード上の索引を区別するために、 このディレクトリーの下に作成されます。
分散 DB2 環境では、このディレクトリーはすべての物理ノード上に存在する必要があることに注意してください。
デフォルト値は、DB2EXT.DBDEFAULTS ビューから取られます。ここで、DEFAULTNAME='WORKDIRECTORY' です。サブディレクトリー NODE<nr> は、サーバーの論理ノード上の索引を区別するために、 このディレクトリーの下に作成されます。
分散 DB2 環境では、このディレクトリーはすべての物理ノード上に存在する必要があることに注意してください。
ニックネームまたはビューの場合は、デフォルトの表スペースが DB2 によって選択されます。
分散 DB2 環境でビューやニックネームのテキスト索引、 またはストアード・プロシージャー検索のためのテキスト索引を作成する場合、 表スペースは単一ノードでなければなりません。
索引が作成される表の非修飾列名を使用して SQL 列式を定義します。許可される SQL 列式タイプは、すべて組み込み、およびユーザー定義特殊タイプです。結果セットの列名は、次の規則を使用して決定されます。
CLOB データ・タイプはキャッシュ・データ・タイプとしてサポートされていません。 CLOB データ・タイプは VARCHARS にキャストする必要があります。
注 |
---|
結果セットの列名を分けて指定できない場合、CREATE INDEX コマンドはエラーを戻します。また、キャッシュ表は、作成後、暗黙的にはアクティブ化されません。たとえばストアード・プロシージャーによる検索は、DB2TEXT ACTIVATE CACHE が実行されるまでは、不可能です。 |
このオプションは、ユーザー表が単一ノード表スペースに保管された場合にのみ、分散 DB2 環境によって使用されます。
ディレクトリーが指定されていない場合、デフォルト値は db2ext.dbdefaults ビューから取られます。ここで、DEFAULTNAME='CACHEDIRECTORY' です。
プラットフォームごとの最大キャッシュ・サイズの限度は、以下のとおりです。
詳細については、付録 B, 大量のメモリーの使用を参照してください。
詳細については ACTIVATE CACHEを参照してください。
詳細については ストアード・プロシージャー検索関数を参照してください。
事前ソートされた索引を使用して作業できるのは、 ストアード・プロシージャー検索インターフェースを使用している場合だけです。
注 |
---|
インクリメンタル更新後は、新規または変更された文書に対して、索引順序を保証できません。 たとえば: INITIAL RESULT ORDER(length(column1) asc, column2+column3 desc) |
この一意性は、主キーの場合とは異なって DB2 によるチェックができないので、 ユーザーが同等の一意性を保証する責任を持っています。指定された列は、索引用のログ表の一部を作成します。
オプション | 値 | 説明 |
TreatNumbersAsWords | 0 または 1 | 数字のシーケンスが文字に隣接していても、別個のワードとして解釈する。たとえば、デフォルトの 0 は、tea42at5 が 1 つのワードと見なされることを意味する。 |
IndexStopWords | 0 または 1 | 索引付け中にストップワードを考慮するか、無視する。現在、ストップワード・リストは、ディレクトリー <instance>/sqllib/db2ext/resources の UCS-2 ファイル <language>.tsw にある。このファイルを変更しても、索引作成後は影響はない。また、<language> は、CREATE INDEX コマンドからの LANGUAGE 値であることに注意。 |
UpdateDelay | 秒数 | キャプチャー表なしのインクリメンタル更新の所要時間を秒単位で指定する。 この所要時間を超過した古い項目だけが、ログ表から取り去られる。 これは更新が失われることのないようにするためのものである。たとえば、 ユーザー・トランザクションが更新コマンドに干渉するというトランザクションのシナリオで、 文書の変更が反映されずに終わることがないようにするためのものである。 したがって、UpdateDelay パラメーターは、 索引を作成した表に対して実行される、 ユーザー書き込みトランザクションの最大所要時間に設定する必要がある。 |
これらの表の項目は、以下の列によって固有に識別されます。
列の詳細については、*** ページを参照してください。
使用法
フル・テキスト索引の作成には、ユーザー表上の主キーが必要です。DB2 Net Search Extender バージョン 8.1 では、マルチコラム DB2 主キーは、タイプの制限なく使用できます。 しかし、表値検索を使用する場合、コンパウンド主キーは許可されません。
主キー列の数は、14 に制限され、すべての主キー列の全長は、1024 - 14 = 1010 バイトに制限されています。
注 |
---|
索引の作成後は、 主キー列またはビュー・キー列の長さを ALTER TABLE コマンドによって変更してはなりません。 ユーザー表、フル・テキスト索引およびキャッシュ結果表の間の同期は、索引更新コマンド中に完了します。詳細については UPDATE INDEXを参照してください。 |