ヘッダーをスキップ
Oracle Textリファレンス
10gリリース2(10.2)
部品番号: B19214-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

14 Oracle Text実行可能ファイル

この章では、Oracle Textで提供される実行可能ファイルについて説明します。この章の内容は次のとおりです。

シソーラス・ローダー(ctxload)

ctxloadを使用して、シソーラスに関する次の操作を実行します。

インポート・ファイルは、ASCIIフラット・ファイルで、問合せを拡張するときに使用するシノニム、上位語、下位語または関連語のエントリを含みます。


関連項目

シソーラス・インポート用のインポート・ファイルの例は、付録C「Oracle Textのテキストのロード例」「ctxloadシソーラス・インポート・ファイルの構造」を参照してください。

テキストのロード

現在、ctxloadプログラムはテキスト列のロードをサポートしていません。ファイルをバッチ内のテキスト列にロードする場合は、SQL*Loaderの使用をお薦めします。

ctxload構文

ctxload -user username[/password][@sqlnet_address]
        -name object_name
        -file file_name

       [-thes]
       [-thescase y|n]
       [-thesdump]
       [-log file_name]
       [-trace]
       [-pk]
       [-export]
       [-update]

必須の引数

-user

ctxloadを実行するユーザー名およびパスワードを指定します。

ユーザー名およびパスワードの直後に@sqlnet_addressを指定すると、リモート・データベースにログインできるようになります。sqlnet_addressの値はデータベースの接続文字列です。環境変数TWO_TASKがリモート・データベースに設定されている場合は、データベースへの接続でsqlnet_addressの値を指定する必要はありません。

-name object_name

ctxloadを使用してシソーラスをエクスポート/インポートする場合、エクスポート/インポートするシソーラスの名前を指定するにはobject_nameを使用します。

シソーラス演算子を使用する問合せでシソーラスを識別するには、object_nameを使用します。


注意:

シソーラス名は、一意である必要があります。シソーラスに指定した名前が既存のシソーラスと同一である場合、ctxloadはエラーを戻し、既存のシソーラスが上書きされることはありません。

ctxloadを使用してテキスト・フィールドを更新/エクスポートする場合、テキスト列に対応付けられている索引を指定するには、object_nameを使用します。

-file file_name

ctxloadを使用してシソーラスをインポートする場合、シソーラスのエントリがあるインポート・ファイルの名前を指定するには、file_nameを使用します。

ctxloadを使用してシソーラスをエクスポートする場合、ctxloadで作成されたエクスポート・ファイルの名前を指定するには、file_nameを使用します。


注意:

シソーラス・ダンプ・ファイルに指定した名前が既存のファイル名と同一である場合、ctxloadにより既存のファイルが上書きされます。

オプションの引数

-thes

シソーラスをインポートします。-file引数でソース・ファイルを指定します。-nameでインポートするシソーラスの名前を指定します。

-thescase y | n

yを指定すると、-nameで指定した名前で大/小文字が区別されるシソーラスを作成し、そのシソーラスに-fileで指定したシソーラス・インポート・ファイルのエントリを移入します。-thescasey(大/小文字が区別されるシソーラス)にすると、ctxloadはインポート・ファイルに登録されているとおりにワードをシソーラスに入力します。

-thescase のデフォルト値はn(大/小文字が区別されないシソーラス)です。


注意:

-thescaseは、-thes引数と併用した場合にのみ有効です。

-thesdump

シソーラスをエクスポートします。-name引数で、エクスポートするシソーラスの名前を指定します。-file引数で宛先ファイルを指定します。

-log

ファイルのロード時にctxloadによって生成される、各国語対応(グローバリゼーション・サポート)メッセージの書込み先ログ・ファイル名を指定します。ログ・ファイルの名前を指定しない場合、メッセージは標準出力に書き出されます。

-trace

ALTER SESSION SET SQL_TRACE TRUEを使用したSQL文のトレースを使用可能にします。このコマンドによって、トレース・ファイルにあるすべての処理済SQL文を獲得し、デバッグに使用できます。トレース・ファイルの位置は、オペレーティング・システム依存であり、USER_DUMP_DEST初期化パラメータを使用して変更できます。


関連項目

SQLトレースおよびUSER_DUMP_DEST初期化パラメータの詳細は、『Oracle Database管理者ガイド』を参照してください。

-pk

更新またはエクスポートされる行の主キー値を指定します。

主キーがコンパウンドの場合、二重引用符で値を囲み、キーをカンマで区切る必要があります。

-export

データベース表のCLOB列またはBLOB列の内容を、-fileで指定したオペレーティング・システム・ファイルにエクスポートします。ctxloadは、-pkで指定した行のCLOB列またはBLOB列をエクスポートします。

-exportを使用する場合、-pkで主キーを指定する必要があります。

-update

データベース表のCLOB列またはBLOB列の内容を、-fileで指定したオペレーティング・システム・ファイルの内容で更新します。ctxloadは、-pkで指定した行のCLOB列またはBLOB列を更新します。

-updateを使用する場合、-pkで主キーを指定する必要があります。

ctxloadの例

この項では、ctxloadが実行可能な操作の例を示します。


関連項目

その他のドキュメントのロード例は、付録C「Oracle Textのテキストのロード例」を参照してください。

シソーラスのインポート例

次の例では、tech_docというシソーラスをtech_thesaurus.txtというインポート・ファイルからインポートします。

ctxload -user jsmith/123abc -thes -name tech_doc -file tech_thesaurus.txt

シソーラスのエクスポート例

次の例では、tech_docというシソーラスの内容のダンプをtech_thesaurus.outというファイルに出力します。

ctxload -user jsmith/123abc -thesdump -name tech_doc -file tech_thesaurus.out

ナレッジ・ベース拡張コンパイラ(ctxkbtc)

ナレッジ・ベースとは、テーマの索引付け、ABOUT問合せの処理、CTX_DOCパッケージでのドキュメント・テーマの抽出などのテーマ分析を実行するために、Oracle Textで使用する情報ソースのことです。英語とフランス語のナレッジ・ベースが提供されています。

ctxkbtcコンパイラを使用して、次の操作を実行できます。

ナレッジ・ベースのキャラクタ・セット

ナレッジ・ベースは、任意のシングルバイト・キャラクタ・セットで格納できます。提供されるナレッジ・ベースは、WE8ISO8859P1です。拡張ナレッジ・ベースは、US7ASCIIなどの別のキャラクタ・セットで格納できます。

ctxkbtc構文

ctxkbtc -user uname/passwd
[-name thesname1 [thesname2 ... thesname16]]
[-revert]
[-stoplist stoplistname]
[-verbose]
[-log filename]
-user

拡張ナレッジ・ベースを作成する管理者用のユーザー名およびパスワードを指定します。このユーザーには、ORACLE_HOMEディレクトリへの書込み権限が必要です。

-name thesname1 [thesname2 ... thesname16]

拡張ナレッジ・ベースを作成するためにナレッジ・ベースでコンパイルするシソーラス(最大16)の名前を指定します。指定するシソーラスは、ctxloadで"-thescase Y"オプションを指定してロードされている必要があります。

-revert

拡張ナレッジ・ベースを、Oracle Textのデフォルトのナレッジ・ベースに回復します。

-stoplist stoplistname

ストップリストの名前を指定します。ストップリスト内のストップワードは、テーマまたはテーマの一部になることができない不使用ワードとしてナレッジ・ベースに追加されます。このコマンドの実行後、CTX_DLL.ADD_STOPTHEMEを使用してストップテーマを追加することもできます。

-verbose

グローバリゼーション・サポート以外のメッセージを含む、すべての警告およびメッセージを標準出力に表示します。

-log

すべてのメッセージを格納するログ・ファイルを指定します。ログ・ファイルを指定すると、メッセージは標準出力にレポートされません。

ctxkbtcの使用上の注意

  • ctxkbtcの実行前に、環境変数NLS_LANGをデータベース・キャラクタ・セットに一致するように設定しておく必要があります。

  • ctxkbtcを発行するユーザーには、ORACLE_HOMEディレクトリへの書込み権限が必要です。プログラムにより、このディレクトリにファイルが書き込まれるためです。

  • コンパイル前に、各シソーラスが、ctxloadの「-thescase Y」オプションによって大/小文字が区別されてOracle Textにロードされている必要があります。

  • ctxkbtcを2回実行すると、前の拡張は削除されます。

ctxkbtcの制限事項

ctxkbtcプログラムには、次の制限事項があります。

  • データベースを別のリリースにアップグレードまたはダウングレードする場合は、テーマの索引付けや関連機能が正常に機能するように、拡張ナレッジ・ベースを新しい環境で再コンパイルすることをお薦めします。

  • ナレッジ・ベースを拡張する前に、ナレッジ・ベース関連のTextファンクションを起動したすべてのサーバー・プロセスを、それらのプロセスが有効な間に終了しておく必要があります。

  • 各インストールの各言語ごとに1ユーザーのみが拡張できます。ユーザー拡張は、そのインストールのすべてのユーザーに影響を与えるため、CTXSYSユーザーのみがナレッジ・ベースを拡張できます。

シソーラス語句に対するctxkbtcの制約

語句は、大/小文字が区別されます。たとえば、シソーラスに大文字の語句がある場合、ドキュメント内で小文字で表記されている同一語句は認識されません。

1つの語句の最大長は、80文字です。

明確な同形異義語は、サポートされません。

シソーラス・リレーションに対するctxkbtcの制約

次の制約が、シソーラス・リレーションに適用されます。

  • 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つにリンクすることをお薦めします。


関連項目

ナレッジ・ベースの完全な説明は、http://otn.oracle.com/products/text/を参照してください。

新規語句を既存のカテゴリから完全に切り離している場合は、新規語句から検証されるテーマが少なくなります。この結果、精度が低下するため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を使用したテーマ、要点およびテーマ・サマリーの生成などの機能が含まれます。

テーマ機能は、ユーザー定義ナレッジ・ベースを追加して拡張します。たとえば、スペイン語シソーラスからスペイン語のナレッジ・ベースを作成できます。

言語固有のナレッジ・ベースをロードする手順は、次のとおりです。

  1. ユーザー定義シソーラスをctxloadを使用してロードします。

  2. language部分がターゲット言語になるように、NLS_LANGを設定します。charset部分は、シングルバイト・キャラクタ・セットに設定する必要があります。

  3. ロード済のシソーラスをctxkbtcを使用して次のようにコンパイルします。

ctxkbtc -user ctxsys/ctxsys -name my_lang_thes

このコマンドは、言語固有のナレッジ・ベースをロード済のシソーラスからコンパイルします。索引付けおよびABOUT問合せ時のテーマ分析にこのナレッジ・ベースを使用するには、NLS_LANG言語をBASIC_LEXERプリファレンスのTHEME_LANGUAGE属性値として指定します。

ナレッジ・ベースの追加に関する制限事項

ナレッジ・ベースの追加には、次の制限事項が適用されます。

  • Oracle Textで提供されているナレッジ・ベースは、英語とフランス語のみです。それ以外の言語に対しては、独自のシソーラスを用意する必要があります。

  • ナレッジ・ベースは、シングルバイト・キャラクタ・セットを持つ言語に対してのみ追加できます。マルチバイト・キャラクタ・セットでのみ表現される言語に対しては、ナレッジ・ベースを作成できません。データベースが、UTF-8などのマルチバイト・ユニバーサル・キャラクタ・セットの場合は、そのシソーラスのコンパイル時に、NLS_LANGパラメータを互換性のあるシングルバイト・キャラクタ・セットに設定する必要があります。

  • ナレッジ・ベースの追加によって、空白で区切られた言語が最適に機能します。

  • グローバリゼーション・サポート言語ごとに1つのナレッジ・ベースを持つことができます。

  • 上位語、下位語および関連語などの階層問合せフィードバック情報の取得操作は、英語とフランス語以外の言語では機能しません。その他の言語では、ナレッジ・ベースがユーザーのシソーラスからのみ導出されるためです。したがって、使用しているシソーラスから直接階層情報を取得することをお薦めします。

複数のシソーラスの優先順位

複数のシソーラスがコンパイルされる場合、コンパイラへの引数に指定されているシソーラスの順序(最も優先度が高いものが最初)によって、優先順位が決定されます。ユーザーのシソーラスは、常に最初から組み込まれているナレッジ・ベースより優先されます。

拡張ナレッジ・ベースのサイズ制限

表14-1は、拡張ナレッジ・ベースの作成およびコンパイルに対応付けられたサイズ制限を示しています。

表14-1: 拡張ナレッジ・ベースのサイズ制限

パラメータの説明 制限
語句ごとのRT数(from + to) 32
1階層ごとの語句数(たとえば、指定した最上位語のすべての下位語) 64000
拡張ナレッジ・ベースの新規語句数 100万
ナレッジ・ベースへのユーザー拡張にコンパイル可能な個別のシソーラス数 16

字句コンパイラ(ctxlc)

字句コンパイラ(ctxlc)は、ユーザー独自の中国語および日本語レキシコン(ディクショナリ)の作成に使用できる、コマンドライン・ユーティリティです。このレキシコンは、ユーザーが作成したワード・リストから生成したり、その言語のシステム・レキシコンとワード・リストをマージして生成できます。

ctxlcにより、現行ディレクトリに新しいレキシコンが作成されます。新しいレキシコンは、drold.datdrolk.datおよびdroli.datの3つのファイルで構成されます。日本語または中国語のシステム・レキシコンを変更するには、システム・レキシコンをこれらのファイルで上書きします。

また、字句コンパイラにより、日本語および中国語のシステム・レキシコンからワード・リストを生成し、その内容を表示できます。これらのワード・リストは、標準出力に送られるため、任意のファイルにリダイレクトできます。

システム・レキシコンの上書き後、問合せを行う前に索引を再作成する必要があります。

ctxlcの構文

ctxlcの構文は、次のとおりです。

ctxlc -ja | -zh [ -n ] -ics character_set -i input_file

ctxlc -ja | -zh -ocs character_set [ > output_file ]

必須の引数

-ja | -zh

変更または作成するレキシコンの言語を指定します。-jaは日本語レキシコンを示し、-zhは中国語レキシコンを示します。

-ics character_set

-i input_fileによって表される入力ファイルのキャラクタ・セットを指定します。input_fileは、新規レキシコンの作成に使用するワード・リストで、1行当たり1ワードを使用します。

-i input_file

新規レキシコンの作成に使用する、ワードが含まれているファイルを指定します。

-ocs character_set

出力するテキスト・ファイルのキャラクタ・セットを指定します。

オプションの引数

-n

input_fileから取得したユーザー提供のワードのみで構成される新規レキシコンを作成するには、-nを指定します。-nが指定されていない場合、新規レキシコンは、システム・レキシコンとinput_fileをマージして構成されます。また、-nが選択されていない場合、drolt.datと呼ばれるテキスト・ファイルが現行ディレクトリに作成されるため、ctxlcコマンドを再発行しなくても、マージしたレキシコンの内容を確認できます。

パフォーマンスに関する考慮点

レキシコンには最大1,000,000の新規ワードを追加できます。ただし、非常に大きなレキシコンを作成すると、索引付けおよび問合せ時にパフォーマンスに影響を与えるおそれがあります。レキシコンのキャラクタ・セットがUTF-8の場合、最高のパフォーマンスが得られます。中国語または日本語のV-gramレクサーはレキシコンを使用しないため、パフォーマンスに影響を受けません。

ctxlcの使用上の注意

ctxlcについて、次のことをお薦めします。

  • 緊急時に備え、プレーン・テキスト・ディクショナリ・ファイルを保存しておいてください。

  • データベースを別のリリースにアップグレードまたはダウングレードする場合は、ユーザー・レキシコンが正常に機能するように、プレーン・テキスト・ディクショナリ・ファイルを新しい環境で再コンパイルすることをお薦めします。

この例では、JA16EUCキャラクタ・セットを使用するワード・リストであるファイルjadict.txtから、新規の日本語レキシコンを作成します。-nを指定していないため、新規レキシコンは、jadict.txtとシステム日本語レキシコンをマージしたものになります。その後、既存の日本語レキシコンを新規のマージしたものに置換します。

% ctxlc -ja -ics JA16EUC -i jadict.txt

これにより、現行ディレクトリに新規ファイルが作成されます。

% ls
drold.dat
drolk.dat
droli.dat
drolt.dat

日本語と中国語のシステム・レキシコン・ファイルは、droldxx.datdrolkxx.datおよびdrolixx.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というファイルが作成されます。