ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
12cリリース1 (12.1)
B71317-04
  目次へ移動
目次
索引へ移動
索引

前
次
 

Oracle Textの索引タイプ

Oracle Textでは、CREATE INDEXを使用して複数のタイプの索引を作成できます。表3-1は、各索引タイプ、その用途およびサポートしている機能を示しています。


表3-1 Oracle Textの索引タイプ

索引タイプ 説明 サポートされるプリファレンスとパラメータ 問合せ演算子 注意

CONTEXT

テキストが大量のまとまったドキュメントで構成されている場合、テキスト検索アプリケーションを作成するには、この索引を使用します。MS Word、HTMLまたはプレーン・テキストなどの多様な形式のドキュメントを索引付けできます。

様々な方法で索引をカスタマイズできます。

この索引タイプでは、元表のDMLの後にCTX_DDL.SYNC_INDEXが必要です。

INDEX SETを除くすべてのCREATE INDEXプリファレンスとパラメータがサポートされています。

このサポート対象のパラメータには、索引パーティション句、形式列、キャラクタ・セット列および言語列が含まれます。

CONTAINS

文法はCONTEXT文法と呼ばれ、豊富な操作をサポートします。

CTXCAT文法は、問合せテンプレートとともに使用できます。

すべてのドキュメント・サービスと問合せサービスがサポートされています。

パーティション・テキスト表の索引付けがサポートされています。

CREATE INDEXFILTER BY句およびORDER BY句をサポートし、構造化列も索引付けすることで、複合問合せをより効率的に処理します。

CTXCAT

複合問合せのパフォーマンスを改善するには、この索引タイプを使用します。通常は、この索引タイプを使用して、小さいドキュメントやテキスト断片を索引付けします。複合問合せのパフォーマンスを改善するために、項目名、価格および説明などの元表の他の列を索引に組み込むことができます。

この索引タイプはトランザクションに基づき、元表に対するDMLの後に自動的に更新されます。CTX_DDL.SYNC_INDEXは必要ありません。

INDEX SET

LEXER

STOPLIST

STORAGE

WORDLIST(日本語データのprefix_index属性のみがサポートされています。)

形式列、キャラクタ・セット列および言語列はサポートされていません。

表のパーティション化および索引のパーティション化はサポートされていません。

CATSEARCH

文法はCTXCATと呼ばれ、論理操作、句問合せおよびワイルド・カード操作をサポートします。

CONTEXT文法は、問合せテンプレートとともに使用できます。

テーマ問合せがサポートされています。

この索引は大きいため、CONTEXT索引よりも作成に時間がかかります。

CTXCAT索引のサイズは、索引付け対象のテキストの合計量、索引セット内の索引数および索引付けされた列の数に関連します。索引セットに索引を追加する前に、使用する問合せとリソースを慎重に考慮してください。

CTXCAT索引は、索引のパーティション化、ドキュメント・サービス(ハイライト表示、マークアップ、テーマおよび要旨)または問合せサービス(実行計画、問合せフィードバックおよびワードのブラウズ)をサポートしていません。

CTXRULE

ドキュメント分類アプリケーションまたはルーティング・アプリケーションの作成には、CTXRULE索引を使用します。この索引は、分類またはルーティングの条件が定義されている問合せの表に作成されます。

CTXRULEパラメータおよび制限事項を参照してください。

MATCHES

単一のドキュメント(プレーン・テキスト、HTMLまたはXML)は、MATCHES演算子を使用して分類できます。この演算子は、ドキュメントを問合せのセットに変更し、CTXRULE索引内の一致する行を検索します。


関連項目:

Oracle Textの索引の作成

Oracle Textの索引は、Oracle Databaseのドメイン索引です。問合せアプリケーションを作成するには、テキスト列と構造化データ列の組合せを持つCONTEXTタイプの索引を作成し、CONTAINS演算子を使用してその索引を問い合せます。

索引は、移入済のテキスト表から作成します。問合せアプリケーションでは、テキスト表にテキストまたはテキストの格納場所へのポインタが含まれている必要があります。テキストは通常ドキュメントの集まりですが、小さいテキスト断片の場合もあります。

複合問合せのパフォーマンスを向上させるために、FILTER BY句またはORDER BY句(またはその両方)を持つCONTEXT索引を作成して、複合問合せの構造化基準に使用するリレーショナル列を指定できます。この索引は、CONTAINS演算子で問い合せます。

使用しているアプリケーションが、日付や価格などの関連基準に基づいて、小さいドキュメントや記述的なテキスト断片を検索する複合問合せを利用する回数が多い場合は、CTXCAT索引タイプを使用します。この索引は、CATSEARCH演算子で問い合せます。

単純な分類またはルールベースの分類を使用して、ドキュメント分類アプリケーションを作成するには、CTXRULEタイプの索引を作成します。この索引は、MATCHES演算子を使用してプレーン・テキスト、HTMLまたはXMLドキュメントを分類します。定義する問合せセットは、索引付け対象のテキスト表に格納します。

注意:

XMLデータを使用する新しいアプリケーションを作成する場合は、CTXRULEを使用するかわりに、XMLIndexを使用することをお薦めします。XMLIndexおよびXMLTypeデータの索引付けについては、『Oracle XML DB開発者ガイド』を参照してください。

テキスト索引は、標準SQLを使用して、Oracle Databaseの拡張索引の1タイプとして作成します。つまり、Oracle Textの索引は、Oracle Databaseの索引と同じように機能します。この索引には参照名があり、標準SQL文を使用して操作できます。

Oracle Textの索引を作成するメリットは、CONTAINSCATSEARCHおよびMATCHESなどのOracle Textの演算子を使用したテキスト問合せの応答時間が短縮されることです。これらの演算子は、それぞれCONTEXTCTXCATおよびCTXRULEの各索引タイプを問い合せます。

注意:

透過的なデータ暗号化の可能な列ではドメイン索引はサポートされないため、Oracle Textで使用することはできません。ただし、透過的なデータ暗号化に対応する表領域に格納されている表の列に対しては、Oracle Text索引を作成することができます。

関連項目:

Oracle Textの索引の作成