Oracle Textでは、CREATE INDEXを使用して複数のタイプの索引を作成できます。表3-1は、各索引タイプ、その用途およびサポートしている機能を示しています。
表3-1 Oracle Textの索引タイプ
| 索引タイプ | 説明 | サポートされるプリファレンスとパラメータ | 問合せ演算子 | 注意 |
|---|---|---|---|---|
|
テキストが大量のまとまったドキュメントで構成されている場合、テキスト検索アプリケーションを作成するには、この索引を使用します。MS Word、HTMLまたはプレーン・テキストなどの多様な形式のドキュメントを索引付けできます。 様々な方法で索引をカスタマイズできます。 この索引タイプでは、元表のDMLの後に |
このサポート対象のパラメータには、索引パーティション句、形式列、キャラクタ・セット列および言語列が含まれます。 |
文法は
|
すべてのドキュメント・サービスと問合せサービスがサポートされています。 パーティション・テキスト表の索引付けがサポートされています。
|
|
複合問合せのパフォーマンスを改善するには、この索引タイプを使用します。通常は、この索引タイプを使用して、小さいドキュメントやテキスト断片を索引付けします。複合問合せのパフォーマンスを改善するために、項目名、価格および説明などの元表の他の列を索引に組み込むことができます。 この索引タイプはトランザクションに基づき、元表に対するDMLの後に自動的に更新されます。 |
形式列、キャラクタ・セット列および言語列はサポートされていません。 表のパーティション化および索引のパーティション化はサポートされていません。 |
文法は
テーマ問合せがサポートされています。 |
この索引は大きいため、
|
|
ドキュメント分類アプリケーションまたはルーティング・アプリケーションの作成には、 |
「CTXRULEパラメータおよび制限事項」を参照してください。 |
|
単一のドキュメント(プレーン・テキスト、HTMLまたはXML)は、 |
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の索引を作成するメリットは、CONTAINS、CATSEARCHおよびMATCHESなどのOracle Textの演算子を使用したテキスト問合せの応答時間が短縮されることです。これらの演算子は、それぞれCONTEXT、CTXCATおよびCTXRULEの各索引タイプを問い合せます。