『Oracle Textアプリケーション開発者ガイド』のこのリリースでの変更点

ここでは、このリリースのOracle Textで変更された点について説明します。

Oracle Databaseリリース18c、バージョン18.1のOracle Textの変更点

このトピックでは、Oracle Database 18c、バージョン18.1のOracle Textの変更点について説明しています。

新機能

この項では、Oracle Databaseリリース18c、バージョン18.1のOracle Textで導入された新機能について説明します。

ファセット・ナビゲーションのサポート

Oracle Textでは、ファセット・ナビゲーションのサポートを提供します。SDATAセクションと結果セット・インタフェース問合せを使用して、ファセット・ナビゲーションがサポートされたアプリケーションをビルドできるようになりました。

効率的なワイルドカード検索のサポート

ワイルドカード索引付けでは、すべてのワイルドカード式について高速かつ効率的なワイルドカード検索をサポートします。新しいワードリスト・プリファレンスのWILDCARD_INDEXは、現在のオプション(SUBSTRING_INDEXPREFIX_INDEXおよびREVERSE_INDEX)に代わるものです。WILDCARD_INDEXを有効にすると、K-gram (固定長サブストリング・パーティクル)索引により、各トークン内のすべてのサブストリングが索引付けされます。新しいワードリスト・プリファレンスのWILDCARD_INDEX_Kは、使用されるgram長(つまり、索引付けされた各サブストリングの長さ)を制御します。

ワイルドカード索引付けは、シングルバイト文字のみを使用する言語でサポートされています。

関連項目:

自動バックグラウンド索引メンテナンス

$G表の断片化が進むと問合せのパフォーマンスは低下します。これを防ぐために、Oracle Textではすべての索引またはパーティションに対する自動バックグラウンド最適化マージ機能が提供されています。

索引の同期化をしばらく実行していると、索引表が断片化されることがあります。この問題を回避するために、Oracle Textでは自動バックグラウンド・ジョブを実行して各種索引表を最適化します。

関連項目:

同時データ操作言語操作のサポート

SYNC (ON COMMIT)オプションを使用して作成された索引の場合、同期化は同じトランザクションの一部として実行されます。致命的な索引の同期化エラーがある場合、データ・トランザクション全体がロールバックされます。致命的でない(個々の行の)同期エラーはCTX_USER_INDEX_ERRORSビューに記録されるものの、トランザクションは完了します。

索引を最適化する新しいオプション

CTX_DDL.OPTIMIZE_INDEXプロシージャには、maxtokensおよびsection_typeという新しい2つのパラメータがあります。

64文字を超えるJSONキー名の索引付けのサポート

CTXCATおよびCTXRULE索引を除くすべてのOracle Text索引タイプは、VARCHAR2 (255 BYTE)型の表列にトークンを格納するようになりました。SDATAセクションでは引き続き、VARCHAR2 (249 BYTE)型の表列にトークンが格納されます。

注意:

64バイトより長い名前のオブジェクト・フィールドを含むJSONデータを索引付けする場合、Oracleデータベース18cより前に作成されたJSON検索索引およびOracle Text索引は再構築する必要があります。詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

関連項目:

トークン制限の詳細は、『Oracle Textリファレンス』を参照してください。

非推奨になった機能

次の機能は、Oracle Databaseリリース18cでは非推奨であり、将来のリリースではサポートされなくなる可能性があります。

Oracle Databaseリリース18cで非推奨となった機能は、『Oracle Databaseアップグレード・ガイド』で説明されています。

Oracle Text 12cリリース2 (12.2.0.1)での変更点

このトピックでは、Oracle Database 12cリリース2 (12.2.0.1)のOracle Textの変更点について説明しています。

新機能

この項では、Oracle Database 12cリリース2 (12.2.0.1)のOracle Textで導入された新機能について説明します。

SDATAセクションの改善

Oracle Textでは、SDATAセクションの操作が拡張されています。新しい種類のSDATAセクションが追加されています。

関連項目:

SDATAセクション

索引内の更新されたドキュメントの保持

Oracle TextではASYNCHRONOUS_UPDATEオプションを使用して索引エントリを継続的に更新して、元のコンテンツを検索できます。

DMLの改良点

Oracle Textは、索引検索のための新しい記憶域プリファレンスSMALL_R_ROWをサポートします。

Oracle Textでは、ロックされた元表の行はサポートされなくなりました。各索引またはパーティションの新しい$U表によりすべての同時更新が追跡され、この$U表用に新しい$U_TABLE_CLAUSE記憶域句も導入されました。

関連項目:

左切捨て問合せの逆トークン索引

Oracle Textには、左切捨て問合せのための新しいREVERSE_INDEX属性があります。この属性はワードリスト・プリファレンスの一部であり、TRUEまたはFALSEに設定できます。デフォルトでは、新しい機能が無効化されるようFALSEに設定されています。CTX_DDL.SET_ATTRIBUTEプロシージャを使用してこの属性を設定できます。また、他のワードリスト・プリファレンスと同様にALTER INDEX REBUILDを使用して追加することもできます。この属性は、左切捨て問合せの問合せパフォーマンスを向上させる場合に使用します。

関連項目:

BASIC_WORDLIST属性表とREVERSE_INDEX属性の詳細は、『Oracle Textリファレンス』を参照してください。

パーティション固有のニア・リアルタイム索引

Oracle Textはパーティション固有のSTAGE_ITABオプションをサポートされており、挿入や更新、削除が頻繁に行われることによりメイン索引が断片化するのを防ぐための2レベルでの索引付けメカニズムを提供します。このオプションはたとえば、通常静的なデータを含めるパーティションもあればすぐに変化するデータを含めるパーティションもあるという場合に、パーティション・レベルで指定します。

STAGE_ITAB_PARALLEL記憶域オプションは、$Gステージング表からのデータを$I表にマージして戻すために使用する並列度のレベルを制御します。

ニア・リアルタイム$G索引表が大きくなりすぎてメモリーに適合しなくなることを防ぐために、表の最大サイズを指定します。

センチメント分析およびコロケート

Oracle Textでは、センチメント分析およびコロケートをサポートします。センチメント分析では、検索語に関連付けられた肯定的および否定的な傾向を識別できます。コロケートにより、指定されたキーワードに関連するまたは頻繁に併用する他のキーワードを特定できます。

NEAR2演算子とNDATA演算子の拡張

既存のNEAR演算子の機能強化版である新しい演算子NEAR2が用意されています。NEAR2演算子の目的は、PHRASE、NEARおよびAND演算子のセマンティクスを組み合せることです。

NDATA演算子では、文字と発音照合の類似度スコアリングの制御を強化できるようになりました。また、操作によって返される全体的なランク付けされた結果の制御も強化されています。

日本語のVGRAMレクサーとWORLDレクサーの結合文字のサポート

Oracle Textは、日本語のVGRAMレクサーとWORLDレクサーに対応する結合文字を提供します。

新しいドキュメント・フォーマット

Oracle Textには、新しいドキュメント・フォーマットをサポートする新しいテキスト・フィルタがあります。

ドキュメント内の単語のシノニムの抽出

Oracle TextのCTX_DOCパッケージには、シソーラスのサポートを有効にする新しいオプションがあります。CTX_DOC.TOKENSおよびCTX_DOC.POLICY_TOKENSプロシージャを使用して索引トークンのシノニムを抽出できます。

関連項目:

読取り専用のMDATAセクション

Oracle Textは読取り専用MDATAセクションをサポートします。セクションに対する問合せ時には、各MDATA演算子に対して余分なカーソルはオープンされません。更新不可のMDATAセクションではMDATA値の追加や削除ができないため、更新されたMDATA値を追跡する際の余分なオーバーヘッドがなく、問合せの実行が迅速化します。

関連項目:

MDATAセクション

Oracle Textオブジェクトの索引名の長さと長い識別子のサポート

Oracle Textの索引名はデータベース・オブジェクト名と同じ長さにできます。長さは、Oracle Databaseリリース12.2互換以降では128バイト、それ以前のリリースの場合は30バイトです。Oracle Textは、Oracle Textオブジェクトの長い識別子をサポートしています。最大サイズが128バイトに増えました。

MAX_INDEX_MEMORYパラメータのデフォルト値と上限の増加

Oracle Textでは、索引付けの目的で割り当てることができるMAX_INDEX_MEMORYパラメータのデフォルト値と上限が増えました。このサイズは256GBに増えています。

JSONの改善

より簡易な代替構文を使用してJSONに検索索引を作成できます。

関連項目:

JSONの検索索引の作成の詳細は、『Oracle Database JSON開発者ガイド』を参照してください。