wwv_context
パッケージには、Oracle Portalで使用するOracle Text索引を作成および管理するプロシージャが含まれています。この付録では、このパッケージの内容について次の項で説明します。
wwv_context
パッケージには、次のプロシージャが含まれています。
touch_index(p_indexes wwsbr_array)
procedure add_attribute_section( p_attributeid in number, p_attributesiteid in number )
アイテムおよびページ索引で使用されるセクション・グループに、新しいセクションを追加します。このセクション・グループは1つの属性と対応します。これによって、索引のメタデータのみが変更され、索引データそのものは変更されません。新しいセクションは検索できますが、索引そのものは変更されません。
索引は、存在する場合のみ変更されます。つまり索引が存在しない場合は、このプロシージャでは何も処理しません。
パラメータ
p_attributeId
: 追加する属性セクションのID
p_attributeSiteId
: 追加する属性セクションのサイトID
procedure commit_sync( p_index in varchar2 p_commit_sync in boolean )
(Oracle Database 10g以降)ポータルへのデータのコミット直後にOracle Text索引を同期化するか、またはwwv_context.sync
を使用して手動で同期化する必要があるかを指定します(「sync」を参照)。
索引を手動で同期化する場合、またはデータベースがOracle Database 10gより前の場合は、wwv_context.syncを直接実行するか、一定の間隔でwwv_context.syncをコールするジョブを作成できます。wwv_context.syncは、commit_syncがtrueに設定されている索引を無視します。第9.3.5.4項「索引の同期化のスケジューリング」も参照してください。
注意: commit_sync プロパティは、バージョンがOracle Database 10g以降のデータベースでのみ使用可能です。それより前のバージョンでは、Oracle Text索引を手動で同期化するか、同期化スケジュール(特定の日付と時刻)に従って同期化します。第9.3.5.1項「Oracle Text索引の同期化」も参照してください。 |
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
p_commit_sync
: コミット直後に索引を同期化するかを指定します。ポータルでデータがコミットされるたびに自動的に索引を同期化する場合は、commit_sync
をtrue
に設定します。wwv_context.sync
を使用して索引を手動で同期化する場合は、commit_sync
をfalse
に設定します。
例外
INVALID_INDEX
: 索引の名前が認識されませんでした。
procedure create_index( p_index in varchar2 )
特定のOracle Text索引を作成します。第9.3.3項「Oracle Text索引」も参照してください。
このプロシージャはトラブルシューティングの目的でのみ使用します。特に問題が発生していない状況では、create_missing_indexesを使用して、不足しているすべての索引を作成するか、またはcreateindexを使用して無効な索引を削除し、プリファレンスおよび不足している索引を再作成します。
パラメータ
p_index
: 作成する索引の名前。索引名の定数のいずれか1つを指定します。
例外
INVALID_INDEX
: 索引の名前が認識されませんでした。
procedure create_missing_indexes( p_indexes out wwsbr_array )
不足しているOracle Text索引をすべて作成します。ビューctx_user_indexes
に基づいて存在している索引は、存在しているとみなされます。
このプロシージャは、既存の索引が有効かどうかは調べません。有効でない部分がある索引を削除するには、プロシージャdrop_invalid_indexesを使用します。
このプロシージャは、空の索引を作成します。索引に値を移入するには、プロシージャtouch_index(p_indexes wwsbr_array)を使用して、対象の索引について索引の再作成が必要であることをマークし、その後に索引と同期化する必要があります。
Oracle Textのデータストアおよびフィルタのプリファレンスはすでに存在しているため、このプロシージャでは作成しません。プリファレンスがない場合に作成するには、プロシージャcreate_prefsを使用します。
パラメータ
p_indexes: 作成した索引のリストが含まれている配列を返します。
procedure create_prefs
データストアおよびフィルタのプリファレンスを作成します。両方ともOracle Text索引を作成するときに使用します。第9.3.3.2項「Oracle Text索引の設定」も参照してください。
このプロシージャは、レクサー・プリファレンスは作成しません。レクサー・プリファレンスを作成するには、ORACLE_HOME\portal\admin\plsql\wws
ディレクトリに格納されているsbrimtlx.sql
スクリプトを使用します。第9.3.3.5項「多言語機能(マルチレクサー)」も参照してください。
Oracle Textの設定は、索引が作成される前に作成する必要があります。その後の設定に対する変更は、Oracle Text索引を削除して再作成しないと、有効になりません。
procedure createindex( p_language in varchar2 default wwnls_api.nls_default_language, p_message out varchar2 )
Oracle Portalで使用するOracle Text索引を作成します。詳細は、第9.3.3項「Oracle Text索引」を参照してください。
この高水準プロシージャは、次のタスクを実行します。
既存のプリファレンス・オブジェクトをすべて削除します。
無効な索引をすべて削除します。
Oracle Textのプリファレンスを再作成します。
不足している索引を作成します(最初は空)。
新しい索引の場合は、索引付けが可能なすべてのOracle Portalコンテンツに、索引の再作成が必要であることをマークします。
索引を同期化します(最初に値を移入し、次に索引を最適化します)。
このプロシージャは、次のものと同じように機能します。
wwv_context.drop_prefs; wwv_context.drop_invalid_indexes; wwv_context.create_prefs; wwv_context.create_missing_indexes(l_indexes); wwv_context.touch_index(l_indexes); wwv_context.sync; wwv_context.optimize;
procedure drop_all_indexes
Oracle Portalで使用するOracle Text索引をすべて削除します。
このプロシージャは、Oracle Textのプリファレンスは削除しません。これを削除するには、プロシージャdrop_prefsを使用します。
procedure drop_index( p_index in varchar2 )
特定のOracle Text索引を削除します。このプロシージャでは、索引が存在するかどうかは検証しません。
パラメータ
p_index
: 削除する索引の名前。索引名の定数のいずれか1つを指定します。
例外
INVALID_INDEX
: 索引の名前が認識されませんでした。
procedure drop_invalid_indexes
無効なOracle Text索引のみを削除します。有効なOracle Text索引は削除されません。
次のビューで次のstatus列がすべてVALIDに設定されている場合は、索引が有効であるとみなされます。
user_indexes.status
user_indexes.domidx_status
user_indexes.domidx_optstatus
ctx_user_indexes.idx_status
いずれかのstatus列が有効でない場合、または索引が両方のビューのエントリを持っていない場合は、その索引は無効とみなされて削除されます。詳細は、第9.3.8項「Oracle Text索引の状態の表示」を参照してください。
procedure drop_prefs
Oracle Textのデータストアおよびフィルタのプリファレンスを削除します。第9.3.3.2項「Oracle Text索引の設定」も参照してください。
データストアおよびフィルタのプリファレンスは、Oracle Text索引を作成するときに使用します。このプロシージャは、スクリプトsbrimtlx.sql
を使用して作成されたレクサー・プリファレンスは削除しません。このスクリプトは、ORACLE_HOME\portal\admin\plsql\wws
ディレクトリにあります。
procedure dropindex( p_language in varchar2 default wwnls_api.nls_default_language, p_message out varchar2 )
Oracle Portalで使用される既存のOracle Text索引をすべて削除します。第9.3.3項「Oracle Text索引」も参照してください。
このプロシージャは、次のものと同じように機能します。
wwv_context.drop_prefs; wwv_context.drop_all_indexes;
procedure optimize( p_optlevel in varchar2 default ctx_ddl.optlevel_full, p_maxtime in number default null, p_token in varchar2 default null )
Oracle Portalで使用する既存のOracle Text索引をすべて最適化します。それぞれの索引は、Oracle Textプロシージャctx_ddl.optimize_index()
をコールすることによって最適化されます。
このプロシージャのパラメータは、Oracle Textプロシージャctx_ddl.optimize_index
で必要なパラメータと同じです。
パラメータ
p_optlevel
: 最適化のレベル。FULL
、FAST
またはTOKEN
のいずれかを指定します。
p_maxtime
: Oracle Textが索引の最適化に費やす時間(分単位)。
p_token
: 最適化するトークン(レベルTOKENで最適化を実行する場合)。
Oracle Technology Network (OTN)のサイト(http://www.oracle.com/technology/products/text/index.html
)で、Oracle Textの参照ドキュメントも参照してください。
procedure set_parallel_degree( p_index in varchar2, p_parallel_degree in pls_integer )
プロシージャwwv_context.sync
を使用して索引を同期化するときに使用する並列度を設定します(「sync」を参照)。マルチプロセッサ・コンピュータでは、同期化操作を同時に実行できます。複数のプロセッサを使用して同期化を実行すれば、特に大量のデータに対して索引を作成する場合に処理速度が向上します。
デフォルトの設定は1
です。これは並列度が指定されていないことを示します。1より大きい値を指定するとパラレル同期が有効になります。並列度に、データベース・サーバーで使用可能なプロセッサの合計数より大きい値を指定すると、同期中に実現される並列度が要求した値よりも小さくなる場合があります。
OTNのサイト(http://www.oracle.com/technology/products/text/index.html
)で、Oracle Textの参照ドキュメントも参照してください。
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
p_parallel_degree
: 指定された索引を同期化するときに使用する並列度。
例外
INVALID_SETTING
: p_parallel_degree
の書式または値が認識されませんでした。
INVALID_INDEX
: 索引の名前が認識されませんでした。
INTERNAL_EXCEPTION
: 予期しない内部エラーが発生しました。
procedure set_sync_memory( p_index in varchar2, p_memory in varchar2 )
プロシージャwwv_context.sync
を使用して索引を同期化するときにOracle Textで使用する、実行時のメモリー量を指定します(「sync」を参照)。メモリー量は、バイト単位の値を入力するか、接尾辞にK、BまたはGを付加して、それぞれキロバイト、メガバイト、ギガバイトの値を表すこともできます。たとえば、値に10000
と入力すると10000バイトを表し、10K
と入力すると10キロバイトを表します。
指定したメモリーがいっぱいになると、データはデータベースに書き込まれます。この状況が頻繁に発生すると、索引付けのパフォーマンスが低下し、Oracle Text索引はより断片化されます。索引の断片化は、ポータルでの検索の問合せ速度を低下させる可能性があります。メモリー量を小さく指定するとパフォーマンスに影響を与え、索引の断片化が増加しますが、実行時のメモリーが不足している場合などは有効です。
p_memory
をNull
に設定すると、デフォルトの索引メモリーの設定が使用されます。このデフォルト値は、Oracle Textの変更可能なシステム・パラメータDEFAULT_INDEX_MEMORY
を使用して設定できます。別の値を指定する場合は、Oracle Textのシステム・パラメータMAX_INDEX_MEMORY
よりも小さい値を指定する必要があります。
詳細は、OTNのサイト(http://www.oracle.com/technology/products/text/index.html
)でOracle Textの参照ドキュメントを参照してください。
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
p_memory
: この索引の同期化に使用するメモリーの最大量。
例外
INVALID_SETTING
: p_memoryの書式または範囲が認識されませんでした。
INVALID_INDEX
: 索引の名前が認識されませんでした。
INTERNAL_EXCEPTION
: 予期しない内部エラーが発生しました。
procedure set_use_doc_index( p_value in boolean )
ドキュメント索引が必須であるかどうかを指定します。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
パラメータ
p_value
: true
またはfalse
のいずれかを指定します。true
に設定すると、ドキュメント索引が必須になります。
procedure set_use_url_index( p_value in boolean )
URL索引が必須であるかどうかを指定します。詳細は、第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」を参照してください。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
パラメータ
p_value
: true
またはfalse
のいずれかを指定します。true
に設定すると、URL索引が必須になります。
procedure sync
Oracle Portalで使用するOracle Text索引をすべて同期化します。それぞれの索引は、Oracle Textプロシージャctx_ddl.sync_index()
をコールすることによって同期化します。このプロシージャでは、前回の同期化の後で更新された行の索引をすべて再作成します。同期化が終了すると、新しく追加または更新したコンテンツを検索できるようになります。第9.3.5.1項「Oracle Text索引の同期化」も参照してください。
同期化する前に、保留状態のキューが、表wwsbr_url$
の内容で更新されます。この表には、Oracle Portalに格納されているURL属性の値がすべて含まれています。URLの値が定数wwv_context_util.g_noindex
の値と同じ場合は、このキューの行が削除されます。行には、元のURLがOracle Textによって索引付けされていなかったことを示すために、この値が設定されます。たとえば、https://
またはjavascript:
で始まるURLなどが該当します。
ctx_ddl.sync_index
の詳細は、OTNのサイト(http://www.oracle.com/technology/products/text/index.html
)でOracle Textに関するドキュメントを参照してください。
procedure touch_index( p_indexes in wwsbr_array )
1つ以上の索引のコンテンツにアクセスします。索引にアクセスすると、すべての索引コンテンツは同期化が必要とマークされます。詳細は、第9.3.5.6項「すべての索引のコンテンツの同期化」を参照してください。
索引のコンテンツがこの方法でマークされると、プロシージャsyncを使用して、マークされたコンテンツの索引を再作成します。
このプロシージャは、現行のサブスクライバのみでなく、複数の仮想プライベート・ポータルのサブスクライバ間で動作します。このプロシージャは、それぞれのサブスクライバに順に切り替えて、終了すると元のサブスクライバに戻ります。
パラメータ
p_indexes
: アクセスする索引名が含まれている配列。索引名の定数を1つ以上指定します。
procedure touch_index( p_index in varchar2 default null )
1つの索引またはすべての索引のコンテンツにアクセスします。このプロシージャは、指定された1つの索引にアクセスするのに便利です。また、このプロシージャは、NULL値を渡すことによってすべての索引にアクセスすることができます。第9.3.5.6項「すべての索引のコンテンツの同期化」も参照してください。
このプロシージャは前述のtouch_index(p_indexes wwsbr_array)をコールします。
パラメータ
p_index
: アクセスする索引の名前。すべての索引にアクセスする場合はNULL
を指定します。名前を指定する場合は、索引名の定数のいずれか1つを指定します。
詳細は、第D.1.18項「touch_index(p_indexes wwsbr_array)」を参照してください。
procedure update_index_prefs
現在のOracle Text索引データベース・プリファレンスを更新します。このプロシージャは、バージョンがOracle Database 10gより前のデータベースでのみ有効です。
索引の作成後にデータストア・プリファレンスを変更した場合、その変更内容は索引に自動で適用されません。このプロシージャを使用して、データストア・プリファレンスの変更をOracle Text索引に適用します。
索引が欠落している場合、それらの索引に操作は実行されません。
wwv_context
パッケージには、次のファンクションが含まれています。
function checkindex( p_force in boolean default false ) return boolean
必須のOracle Text索引がすべて存在するかどうかをチェックします。ドキュメント索引とURL索引はオプションのため、これらの索引の存在と妥当性を検証するには、valid_doc_indexおよびvalid_url_indexをコールします。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。
セッション期間中、checkindex
の戻り値はキャッシュされます。p_force
にtrue
が渡されると、Oracle Text索引の状態は、事前にキャッシュされている値とは関係なく常に再評価されます。
パラメータ
p_force
: true
またはfalse
のいずれかを指定します。true
に設定すると、Oracle Text索引がチェックされます。
戻り値
すべての必須索引が存在し、かつ有効である場合、true
が返されます。
function doc_index return boolean
ドキュメント索引が必須であるかどうか(get_use_doc_indexを使用)、および使用可能かどうか(valid_doc_indexを使用)をチェックします。
戻り値
ドキュメント索引が必須で、かつ有効である場合、true
が返されます。
function get_commit_sync( p_index in varchar2) return boolean
索引を、ポータルへのデータのコミット直後に同期化するか、または手動で同期化するかを検証します。詳細は、「commit_sync」も参照してください。
注意: commit_sync プロパティは、バージョンがOracle Database 10gより前のデータベースでは使用できません。以前のバージョンのデータベースでコールされた場合、このファンクションはfalse を返します。 |
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
戻り値
ポータルへのデータのコミット直後に同期化するよう索引が構成されている場合は、true
を返します。手動で同期化するように構成されている場合は、false
を返します。
function get_parallel_degree( p_index in varchar2) return boolean
プロシージャwwv_context.sync
を使用して索引を同期化するときに使用する並列度を取得します(「sync」を参照)。マルチプロセッサ・コンピュータでは、同期化操作を同時に実行できます。複数のプロセッサを使用して同期化を実行すれば、特に大量のデータに対して索引を作成する場合に処理速度が向上します。
デフォルトの設定は1
です。これは並列度が指定されていないことを示します。1より大きい値を指定するとパラレル同期が有効になります。並列度に、データベース・サーバーで使用可能なプロセッサの合計数より大きい値を指定すると、同期中に実現される並列度が要求した値よりも小さくなる場合があります。
OTNのサイト(http://www.oracle.com/technology/products/text/index.html
)で、Oracle Textの参照ドキュメントも参照してください。
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
戻り値
指定された索引を同期化するときに使用する並列度を返します。
例外
INVALID_INDEX
: 索引の名前が認識されませんでした。
INTERNAL_EXCEPTION
: 予期しない内部エラーが発生しました。
function get_sync_memory( p_index in varchar2) return boolean
プロシージャwwv_context.sync
を使用して索引を同期化するときにOracle Textで使用する、実行時のメモリー量を(バイト単位で)取得します(「sync」を参照)。
メモリーがいっぱいになると、データはデータベースに書き込まれます。この状況が頻繁に発生すると、索引付けのパフォーマンスが低下し、Oracle Text索引はより断片化されます。索引の断片化は、ポータルでの検索の問合せ速度を低下させる可能性があります。メモリー量が小さいとパフォーマンスに影響を与え、索引の断片化が増加しますが、実行時のメモリーが不足している場合などは有効です。
NULL
値は、デフォルトの索引メモリーの設定が使用されていることを示します。このデフォルト値は、Oracle Textの変更可能なシステム・パラメータDEFAULT_INDEX_MEMORY
を使用して設定できます。詳細は、ONTのサイト(http://www.oracle.com/technology/products/text/index.html
)で、Oracle Textの参照ドキュメントを参照してください。
パラメータ
p_index
: 索引の名前。索引名の定数のいずれか1つを指定します。
戻り値
指定された索引を同期化するときに使用するメモリー量を(バイト単位で)返します。
例外
INVALID_INDEX
: 索引の名前が認識されませんでした。
INTERNAL_EXCEPTION
: 予期しない内部エラーが発生しました。
function get_use_doc_index return boolean
ドキュメント索引が必須であるかどうかを判別します。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
戻り値
ドキュメント索引が必須である場合、true
が返されます。
function get_use_url_index return boolean
URL索引が必須であるかどうかを判別します。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
戻り値
URL索引が必須である場合、true
が返されます。
function valid_doc_index return boolean
ドキュメント索引が有効で、使用可能な状態にあるかどうかを判別します。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。ファンクションcheckindexがコールされていない場合は、コールされます。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
戻り値
ドキュメント索引が存在し、かつ有効である場合、true
が返されます。
function valid_url_index return boolean
URL索引が有効で、使用可能な状態にあるかどうかを判別します。第9.3.7項「ドキュメント索引およびURL索引の作成の無効化」も参照してください。ファンクションcheckindexがコールされていない場合は、コールされます。
セッション期間中、この情報に対するリクエストの繰返しを避けるため、この値はキャッシュされます。
戻り値
URL索引が存在し、かつ有効である場合、true
が返されます。
function url_index return boolean
URL索引が必須であり(get_use_url_indexを使用)、使用可能かどうか(valid_url_indexを使用)をチェックします。
戻り値
URL索引が必須で、かつ有効である場合、true
が返されます。
wwv_context
パッケージには、次の定数が含まれています。
次の定数を使用して、Oracle Portalで使用されるOracle Text索引を指定します。
ページ索引: wwv_context.PAGE_TEXT_INDEX
ドキュメント索引: wwv_context.DOC_TEXT_INDEX
パースペクティブ索引: wwv_context.PERSPECTIVE_TEXT_INDEX
アイテム索引: wwv_context.ITEM_TEXT_INDEX
カテゴリ索引: wwv_context.CATEGORY_TEXT_INDEX
URL索引: wwv_context.URL_TEXT_INDEX
PAGE_TEXT_INDEX
PAGE_TEXT_INDEX constant varchar2(30) := 'WWSBR_CORNER_CTX_INDX'
DOC_TEXT_INDEX
DOC_TEXT_INDEX constant varchar2(30) := 'WWSBR_DOC_CTX_INDX'
PERSPECTIVE_TEXT_INDEX
PERSPECTIVE_TEXT_INDEX constant varchar2(30) := 'WWSBR_PERSP_CTX_INDX'
ITEM_TEXT_INDEX
ITEM_TEXT_INDEX constant varchar2(30) := 'WWSBR_THING_CTX_INDX'
CATEGORY_TEXT_INDEX
CATEGORY_TEXT_INDEX constant varchar2(30) := 'WWSBR_TOPIC_CTX_INDX'
URL_TEXT_INDEX
URL_TEXT_INDEX constant varchar2(30) := 'WWSBR_URL_CTX_INDX'
ドキュメント索引およびURL索引は、AUTO_FILTERを使用してドキュメントを索引作成に適したプレーン・テキスト形式に変換します。すべてのドキュメント・タイプに絞込みが必要なわけではありません。ドキュメント・タイプの中には、直接索引を作成できるものもあります。AUTO_FILTERでは、次の設定を使用して、絞込みの必要なドキュメントを特定します。
BINARY_FORMAT: ドキュメントがプレーン・テキストやHTML以外の形式で、AUTO_FILTER
でサポートされている形式(PDFなど)であることを示します。このようなドキュメントは、索引作成の可能なテキスト形式に変換されます(そのバイナリ形式がAUTO_FILTER
でサポートされている場合)。
TEXT_FORMAT: ドキュメントがプレーン・テキストまたはHTMLであることを示します。これが指定されると、ドキュメントの絞込みは行われませんが、キャラクタ・セットが変換される場合があります。
IGNORE: ドキュメントの索引を作成する必要がないことを示します(例: イメージ・ファイルなど)。
注意: AUTO_FILTER はINSO_FILTER と同じ機能を提供します。INSO_FILTERは現在使用されていません。 |
BINARY_FORMAT
BINARY_FORMAT constant varchar2(10) := 'BINARY';
TEXT_FORMAT
TEXT_FORMAT constant varchar2(10) := 'TEXT';
IGNORE
IGNORE constant varchar2(10) := 'IGNORE';
Oracle Textのメンテナンス・ジョブの管理に次の定数が使用されます。
SYNC_JOB_PREF
: 同期化ジョブIDを保存するためのプリファレンス名。索引の同期化スクリプトtextjsub.sql
で使用します。第9.3.5.4項「索引の同期化のスケジューリング」も参照してください。
OPTIMIZE_JOB_PREF
: 最適化ジョブIDを保存するためのプリファレンス名。索引の最適化スクリプトoptjsub.sql
で使用します。第9.3.5.8項「索引の最適化のスケジューリング」も参照してください。
SYNC_JOB_PREF
SYNC_JOB_PREF constant varchar2(20) := 'text_sync_jobid';
OPTIMIZE_JOB_PREF
OPTIMIZE_JOB_PREF constant varchar2(20) := 'text_optimize_jobid';
行に索引を作成できないことを表すための絶対URL。URLの索引は、wwsbr_url.absolute_url
の列に作成されます。この列は、トリガーによって値が移入されます。
javascript:
で始まるURLなど、索引作成には不適切なURLの場合には、この定数値が使用されます。第9.3.6.2項「サポートされていないURL」も参照してください。
G_NOINDEX
G_NOINDEX constant varchar2(15) := 'wwsbr_noindex'