この章では、Oracle Textで提供されるユーティリティについて説明します。この章の内容は次のとおりです。
ctxload
を使用して、シソーラスのファイルをOracle Textのシソーラス表にインポートします。
インポート・ファイルは、ASCIIフラット・ファイルで、問合せを拡張するときに使用するシノニム、上位語、下位語または関連語のエントリを含みます。
現在、ctxload
プログラムはテキスト列のロードをサポートしていません。ファイルをバッチ・モードのテキスト列にロードする場合は、SQL*Loaderの使用をお薦めします。
ctxload -user username[/password][@sqlnet_address] -name object_name -file file_name [-thes] [-thescase y|n] [-thesdump] [-log file_name] [-trace]
ctxload
を実行するユーザー名およびパスワードを指定します。
ユーザー名およびパスワードの直後に@sqlnet_addressを指定すると、リモート・データベースにログインできるようになります。sqlnet_addressの値はデータベースの接続文字列です。環境変数TWO_TASK
がリモート・データベースに設定されている場合は、データベースへの接続でsqlnet_addressの値を指定する必要はありません。
ctxload
を使用してシソーラスをインポートする場合、インポートするシソーラスの名前を指定するにはobject_name
を使用します。
シソーラス演算子を使用する問合せでシソーラスを識別するには、object_name
を使用します。
注意: シソーラス名は、一意である必要があります。シソーラスに指定した名前が既存のシソーラスと同一である場合、 ctxload はエラーを戻し、既存のシソーラスが上書きされることはありません。 |
ctxload
を使用してシソーラスをインポートする場合、シソーラスのエントリがあるインポート・ファイルの名前を指定するには、file_nameを使用します。
ctxload
を使用してシソーラスをエクスポートする場合、ctxload
で作成されたエクスポート・ファイルの名前を指定するには、file_nameを使用します。
注意: シソーラス・ダンプ・ファイルに指定した名前が既存のファイル名と同一である場合は、 ctxload により既存のファイルが上書きされます。 |
シソーラスをインポートします。-file引数でソース・ファイルを指定します。-nameでインポートするシソーラスの名前を指定します。
yを指定すると、-nameで指定した名前で大/小文字が区別されるシソーラスを作成し、そのシソーラスに-fileで指定したシソーラス・インポート・ファイルのエントリを移入します。-thescaseをy(大/小文字が区別されるシソーラス)にすると、ctxload
はインポート・ファイルに登録されているとおりにワードをシソーラスに入力します。
-thescaseのデフォルト値はn(大/小文字が区別されないシソーラス)です。
注意: -thescaseは、-thes引数と併用した場合にのみ有効です。 |
シソーラスをエクスポートします。-name引数で、エクスポートするシソーラスの名前を指定します。-file引数で宛先ファイルを指定します。
ファイルのロード時にctxload
によって生成される、各国語対応(グローバリゼーション・サポート)メッセージの書込み先ログ・ファイル名を指定します。ログ・ファイルの名前を指定しない場合、メッセージは標準出力に書き出されます。
ALTER
SESSION
SET
SQL_TRACE
TRUE
を使用したSQL文のトレースを使用可能にします。このコマンドによって、トレース・ファイルにあるすべての処理済SQL文を獲得し、デバッグに使用できます。トレース・ファイルの位置は、オペレーティング・システム依存であり、USER_DUMP_DEST
初期化パラメータを使用して変更できます。
ナレッジ・ベースとは、テーマの索引付け、ABOUT
問合せの処理などのテーマ分析を実行したり、CTX_DOC
パッケージでのドキュメント・テーマを抽出するために、Oracle Textで使用する情報ソースのことです。英語とフランス語のナレッジ・ベースが提供されています。
ctxkbtc
コンパイラを使用して、次の操作を実行できます。
Oracle Textのナレッジ・ベースで1つ以上のシソーラスをコンパイルし、使用しているナレッジ・ベースを拡張します。アプリケーション固有の語句および関連情報も拡張されます。テーマ分析時に、ナレッジ・ベースの拡張部分は、ナレッジ・ベースでオーバーラップする語句および関連情報を上書きします。
1つ以上のシソーラスをコンパイルして新しいユーザー定義のナレッジ・ベースを作成します。英語とフランス語以外の言語では、この機能は、言語固有のナレッジ・ベースの作成に使用できます。
注意: CTXSYS を使用した場合のみナレッジ・ベースを拡張できます。 |
関連項目: Oracle Textのナレッジ・ベースの詳細は、 http://otn.oracle.com/products/text/ を参照してください。
ドキュメント・サービスの詳細は、第8章「CTX_DOCパッケージ」を参照してください。 |
ナレッジ・ベースは、任意のシングルバイト・キャラクタ・セットで格納できます。提供されるナレッジ・ベースは、WE8ISO8859P1です。拡張ナレッジ・ベースは、US7ASCIIなどの別のキャラクタ・セットで格納できます。
ctxkbtc -user uname/passwd
[-name thesname1 [thesname2 ... thesname16]] [-revert] [-stoplist stoplistname] [-verbose] [-log filename]
拡張ナレッジ・ベースを作成する管理者用のユーザー名およびパスワードを指定します。このユーザーには、ORACLE_HOME
ディレクトリへの書込み権限が必要です。
拡張ナレッジ・ベースを作成するためにナレッジ・ベースでコンパイルするシソーラス(最大16)の名前を指定します。指定するシソーラスは、ctxload
で「-thescase Y
」オプションを指定してロードされている必要があります。
拡張ナレッジ・ベースを、Oracle Textのデフォルトのナレッジ・ベースに回復します。
ストップリストの名前を指定します。ストップリスト内のストップワードは、テーマまたはテーマの一部になることができない不使用ワードとしてナレッジ・ベースに追加されます。このコマンドの実行後、CTX_DLL.ADD_STOPTHEME
を使用してストップテーマを追加します。
グローバリゼーション・サポート以外のメッセージを含む、すべての警告およびメッセージを標準出力に表示します。
すべてのメッセージを格納するログ・ファイルを指定します。ログ・ファイルを指定すると、メッセージは標準出力にレポートされません。
ctxkbtc
の実行前に、環境変数NLS_LANG
をデータベース・キャラクタ・セットに一致するように設定しておく必要があります。
ctxkbtc
を発行するユーザーには、ORACLE_HOME
ディレクトリへの書込み権限が必要です。プログラムにより、このディレクトリにファイルが書き込まれるためです。
コンパイル前に、各シソーラスが、ctxload
の「-thescase Y
」オプションによって大/小文字が区別されてOracle Textにロードされている必要があります。
ctxkbtc
を2回実行すると、前の拡張は削除されます。
ctxkbtc
プログラムには、次の制限事項があります。
データベースを別のリリースにアップグレードまたはダウングレードする場合は、テーマの索引付けや関連機能が正常に機能するように、拡張ナレッジ・ベースを新しい環境で再コンパイルすることをお薦めします。
ナレッジ・ベースを拡張する前に、ナレッジ・ベース関連のTextファンクションを起動したすべてのサーバー・プロセスを、それらのプロセスが有効な間に終了しておく必要があります。
各インストールの各言語ごとに1ユーザーのみが拡張できます。ユーザー拡張は、そのインストールのすべてのユーザーに影響を与えるため、CTXSYS
ユーザーのみがナレッジ・ベースを拡張できます。
RAC環境では、複数のノード間でORACLE_HOME
を共有するか、または各ノードに独自のORACLE_HOME
を設定できます。次の要件が適用されます。
ナレッジ・ベースに依存する機能をいずれかのRACノードで使用する前に、RAC環境内のすべてのORACLE_HOME
でctxkbtc
を実行する必要があります。
ctxkbtc
を使用する際は、RAC環境内のすべてのORACLE_HOME
で、同一の入力シソーラスの内容を使用する必要があります。
語句は、大/小文字が区別されます。たとえば、シソーラスに大文字の語句がある場合、ドキュメント内で小文字で表記されている同一語句は認識されません。
1つの語句の最大長は、80文字です。
明確な同形異義語は、サポートされません。
次の制約が、シソーラス・リレーションに適用されます。
BTGおよびBTPはBTと同じです。NTGおよびNTPはNTと同じです。
優先語のみが、BT、NTまたはRTを持つことができます。
語句がUSEリレーションを持たない場合は、独自の優先語として扱われます。
語句のセットがSYNリレーションによって関連付けられている場合は、そのうちの1つのみが優先語になることがあります。
既存のカテゴリを、最上位語にすることはできません。
BTおよびNTリレーションには、サイクルはありません。
1つの語句は、最大1つの優先語および最大1つのBTを持つことができます。語句は、NTをいくつでも持つことができます。
語句のRTは、その語句の上位クラスまたは下位クラスになることができません。優先語は、32以下であればいくつでもRTを持つことができます。
ツリーの高さは、最上位語レベルを含めて最高16です。
複数のシソーラスがコンパイルされる場合、1つのシソーラスの最上位語は、別のシソーラスの上位語を持つことはできません。
注意: シソーラスのコンパイラは、前述のルールの特定の違反を許容します。たとえば、語句が複数のBTを持つ場合、最後のBTのみ検出し、他はすべて無視します。 同様に、既存のナレッジ・ベースのカテゴリ間にBTがある場合も、警告メッセージが表示されるのみです。 このような違反は、好ましくない結果を引き起こす場合があるため、お薦めできません。 |
Oracle Textのナレッジ・ベースで1つ以上のシソーラスをコンパイルし、提供されているナレッジ・ベースを拡張します。アプリケーション固有の語句および関連情報も拡張されます。テーマ分析時に、ナレッジ・ベースの拡張部分は、ナレッジ・ベースでオーバーラップする語句および関連情報を上書きします。
ナレッジ・ベースの拡張時には、テーマを検証する場合に最適な結果が得られるように、新規語句をナレッジ・ベースのカテゴリの1つにリンクすることをお薦めします。
新規語句を既存のカテゴリから完全に切り離している場合は、新規語句から検証されるテーマが少なくなります。この結果、精度が低下するためABOUT
問合せでコールしなおす必要があります。また、要点およびテーマ・ハイライトの品質も低下します。
既存語句を新規語句の上位語にすることによって、新規語句を既存語句にリンクします。
医学用語の階層を含む医学シソーラスmedthes
を購入します。このシソーラスの4つの最上位語は、次のとおりです。
Anesthesia and Analgesia(麻酔および無痛)
Anti-Allergic and Respiratory System Agents(抗アレルギー薬および呼吸器系薬)
Anti-Inflammatory Agents, Antirheumatic Agents, and Inflammation Mediators(抗炎症薬、抗リウマチ薬および炎症伝達物質)
Antineoplastic and Immunosuppressive Agents(抗腫瘍薬および免疫抑制薬)
これらの語句を既存のナレッジ・ベースにリンクするには、医学シソーラスに次のエントリを追加して、新規語句を既存のhealth and medicineブランチにマップします。
health and medicine NT Anesthesia and Analgesia NT Anti-Allergic and Respiratory System Agents NT Anti-Inflamammatory Agents, Antirheumatic Agents, and Inflamation Mediators NT Antineoplastic and Immunosuppressive Agents
グローバリゼーション・サポート言語の環境変数をデータベース・キャラクタ・セットに一致するように設定します。たとえば、データベース・キャラクタ・セットがWE8ISO8859P1で、アメリカ英語を使用している場合は、次のようにNLS_LANGを設定します。
setenv NLS_LANG AMERICAN_AMERICA.WE8ISO8859P1
医学シソーラスがmed.thesというファイルにある場合は、次のように、ctxload
でシソーラスをmedthes
としてロードします。
ctxload -thes -thescase y -name medthes -file med.thes -user ctxsys/ctxsys
ロードされたシソーラスmedthes
をナレッジ・ベースにリンクするには、次のようにctxkbtc
を使用します。
ctxkbtc -user ctxsys/ctxsys -name medthes
シングルバイトの空白で区切られた言語の独自のナレッジ・ベースをロードして、スペイン語など、英語やフランス語以外の言語に対してテーマ機能を拡張します。
テーマ機能には、テーマの索引付け、ABOUT
問合せ、テーマ・ハイライト、およびPL/SQLパッケージCTX_DOC
を使用したテーマ、要点およびテーマ・サマリーの生成などの機能が含まれます。
テーマ機能は、ユーザー定義ナレッジ・ベースを追加して拡張します。たとえば、スペイン語シソーラスからスペイン語のナレッジ・ベースを作成できます。
言語固有のナレッジ・ベースをロードする手順は、次のとおりです。
ユーザー定義シソーラスをctxload
を使用してロードします。
language部分がターゲット言語になるように、NLS_LANGを設定します。charset部分は、シングルバイト・キャラクタ・セットに設定する必要があります。
ロード済のシソーラスをctxkbtc
を使用して次のようにコンパイルします。
ctxkbtc -user ctxsys/ctxsys -name my_lang_thes
このコマンドは、言語固有のナレッジ・ベースをロード済のシソーラスからコンパイルします。索引付けおよびABOUT
問合せ時のテーマ分析にこのナレッジ・ベースを使用するには、NLS_LANG
言語をBASIC_LEXER
プリファレンスのTHEME_LANGUAGE
属性値として指定します。
ナレッジ・ベースの追加には、次の制限事項が適用されます。
Oracle Textで提供されているナレッジ・ベースは、英語とフランス語のみです。それ以外の言語に対しては、独自のシソーラスを用意する必要があります。
ナレッジ・ベースは、シングルバイト・キャラクタ・セットを持つ言語に対してのみ追加できます。マルチバイト・キャラクタ・セットでのみ表現される言語に対しては、ナレッジ・ベースを作成できません。データベースが、UTF-8などのマルチバイト・ユニバーサル・キャラクタ・セットの場合は、そのシソーラスのコンパイル時に、NLS_LANGパラメータを互換性のあるシングルバイト・キャラクタ・セットに設定する必要があります。
ナレッジ・ベースの追加によって、空白で区切られた言語が最適に機能します。
グローバリゼーション・サポート言語ごとに1つのナレッジ・ベースを持つことができます。
上位語、下位語および関連語などの階層問合せフィードバック情報の取得操作は、英語とフランス語以外の言語では機能しません。その他の言語では、ナレッジ・ベースがユーザーのシソーラスからのみ導出されるためです。したがって、使用しているシソーラスから直接階層情報を取得することをお薦めします。
字句コンパイラ(ctxlc
)は、ユーザー独自の中国語および日本語レキシコン(ディクショナリ)の作成に使用できる、コマンドライン・ユーティリティです。このレキシコンは、ユーザーが作成したワード・リストから生成したり、その言語のシステム・レキシコンとワード・リストをマージして生成できます。
ctxlc
により、現行ディレクトリに新しいレキシコンが作成されます。新しいレキシコンは、drold.dat
、drolk.dat
およびdroli.dat
の3つのファイルで構成されます。日本語または中国語のシステム・レキシコンを変更するには、システム・レキシコンをこれらのファイルで上書きします。
また、字句コンパイラにより、日本語および中国語のシステム・レキシコンからワード・リストを生成し、その内容を表示できます。これらのワード・リストは、標準出力に送られるため、任意のファイルにリダイレクトできます。
システム・レキシコンの上書き後、問合せを行う前に索引を再作成する必要があります。
ctxlc
の構文は、次のとおりです。
ctxlc -ja | -zh [ -n ] -ics character_set -i input_file ctxlc -ja | -zh -ocs character_set [ > output_file ]
変更または作成するレキシコンの言語を指定します。-ja
は日本語レキシコンを示し、-zh
は中国語レキシコンを示します。
-i
input_fileによって表される入力ファイルのキャラクタ・セットを指定します。input_fileは、新規レキシコンの作成に使用するワード・リストで、1行当たり1ワードを使用します。
新規レキシコンの作成に使用する、ワードが含まれているファイルを指定します。
出力するテキスト・ファイルのキャラクタ・セットを指定します。
レキシコンには最大1,000,000の新規ワードを追加できます。ただし、非常に大きなレキシコンを作成すると、索引付けおよび問合せ時にパフォーマンスに影響を与えるおそれがあります。レキシコンのキャラクタ・セットがUTF-8の場合、最高のパフォーマンスが得られます。中国語または日本語のV-gramレクサーはレキシコンを使用しないため、パフォーマンスに影響を受けません。
ctxlc
について、次のことをお薦めします。
緊急時に備え、プレーン・テキスト・ディクショナリ・ファイルを保存しておいてください。
データベースを別のリリースにアップグレードまたはダウングレードする場合は、ユーザー・レキシコンが正常に機能するように、プレーン・テキスト・ディクショナリ・ファイルを新しい環境で再コンパイルすることをお薦めします。
この例では、JA16EUCキャラクタ・セットを使用するワード・リストであるファイルjadict.txt
から、新規の日本語レキシコンを作成します。-n
を指定していないため、新規レキシコンは、jadict.txt
とシステム日本語レキシコンをマージしたものになります。その後、既存の日本語レキシコンを新規のマージしたものに置換します。
% ctxlc -ja -ics JA16EUC -i jadict.txt
これにより、現行ディレクトリに新規ファイルが作成されます。
% ls drold.dat drolk.dat droli.dat drolt.dat
日本語と中国語のシステム・レキシコン・ファイルは、drold
xx
.dat
、drolk
xx
.dat
およびdroli
xx
.dat
と名付けられます。xxは、JA
(日本語の場合)またはZH
(中国語の場合)です。これら3つの新規ファイルの名前を変更し、システム日本語レキシコンが含まれているディレクトリにコピーします。
% mv drold.dat droldJA.dat % mv drolk.dat drolkJA.dat % mv droli.dat droliJA.dat % cp *dat $ORACLE_HOME/ctx/data/jalx
これにより、システム日本語レキシコンが、古いシステム・レキシコンとjadict.txt
のワード・リストをマージしたものと置換されます。
また、ctxlc
を使用して、システム・レキシコンのダンプを取得できます。次の例では、中国語レキシコンを現行ディレクトリ内のnew_chinese_dict.txt
というファイルにダンプします。
% ctxlc -zh -ocs UTF8 > new_chinese_dict.txt
これにより、現行ディレクトリに、UTF-8キャラクタ・セットを使用したnew_japanese.dict.txt
というファイルが作成されます。