16 Oracle Textのユーティリティ

Oracle Textではテキスト索引での管理と操作のためのユーティリティが提供されます。たとえば、特定のシソーラスを索引にロードすることができ、特に、索引に関連する固有のナレッジ・ベースを作成することができます。この章では、Oracle Textで提供されるユーティリティについて説明します。

この項の内容は、次のとおりです。

ノート:

Oracle Textと共に出荷されるユーティリティのAPIは、スキーマまたは所有者名を接頭辞として使用する識別子をサポートしていません。

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

ctxloadを使用して、シソーラスのファイルをOracle Textのシソーラス表にインポートします。

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

この項では、次の項目について説明します。

関連項目:

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

16.1.1 ctxloadテキストのロード

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

16.1.2 ctxload構文

ctxload -user username[/password][@sqlnet_address]
        -name object_name 
        -file file_name 
      
       [-thes]
       [-thescase y|n]
       [-thesdump]
       [-log file_name]
       [-trace]
       [-drop]

ctxloadの必須の引数

-user

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

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

-name object_name

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

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

ノート:

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

-file file_name

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

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

ノート:

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

ctxloadのオプションの引数

-thes

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

-thescase y | n

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

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

ノート:

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

-thesdump

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

-log

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

-trace

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

関連項目:

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

16.1.3 ctxloadの例

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

関連項目:

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

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

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

次の例では、tech_docというシソーラスの内容をtech_thesaurus.outというファイルにエクスポートします。

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

16.2 エンティティ抽出ユーザー・ディクショナリ・ローダー(ctxload)

ctxloadを使用して、エンティティ抽出ユーザー・ディクショナリをOracle Text表にインポートします。

インポート・ファイルは、関連付けられている型と代替形式を使用した、エンティティのエントリを含むXMLフラット・ファイルです。

この項では、次の項目について説明します。

16.2.1 ctxload構文

ctxload -user username[/password][@sqlnet_address]
        -extract
        -name entity extraction policy name 
        -file user-dictionary file name 
        [-drop] to drop a user-dictionary from a policy

ctxloadの必須の引数

-user

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

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

-name エンティティ抽出ポリシー名

ctxloadを使用してエンティティ抽出ディクショナリをインポートする場合、object_nameを使用してディクショナリを関連付けるエンティティ抽出ポリシーを指定します。エンティティ抽出ポリシーは、1つのユーザー・ディクショナリのみ使用できます。

-file ユーザー・ディクショナリ・ファイル名

ユーザー・ディクショナリを含むXMLファイルの名前を指定します。

-drop

現在エンティティ抽出ポリシーに関連付けられているユーザー・ディクショナリを削除します。

16.2.2 ユーザー・ディクショナリを作成する場合の考慮点

ユーザー・ディクショナリを作成する場合の考慮点は、次のとおりです。

  • エンティティ参照は大/小文字が区別されます。NULL文字は使用できません。

  • エンティティ・タイプ名の大/小文字は区別されません。NULL文字およびカンマは使用できません。

  • 2つ以上のエンティティ・タイプを1つのエンティティ参照に割り当てることができます。たとえば、「Washington」エンティティに「CITY」型や「STATE」型を割り当てることができます。

  • ユーザー・ディクショナリの内容は、他のユーザーに表示されません。

  • エンティティ参照の最大バイト長は、サーバー側のデータベースのキャラクタ・セットごとに512バイトです。

  • エンティティ・タイプ名の最大バイト長は、サーバー側のデータベースのキャラクタ・セットごとに30バイトです。

  • ユーザー定義エンティティ・タイプ名は、「x」で始める必要があります。

16.2.3 XMLスキーマ

エンティティ抽出ディクショナリは、このXMLスキーマに準拠します。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="dictionary">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="entities" type="entityType" maxOccurs="unbounded"/>
    </xsd:sequence>
  <xsd:complexType>
</xsd:element>

<xsd:complexType name="entityType">
  <xsd:sequence>
    <xsd:element name="entity" type="entType" maxOccurs="unbounded"/>
  </xsd:sequence>
  </xsd:attribute name="language" type="xsd:string"/>
</xsd:complexType>

<xsd:complexType name="entType">
  <xsd:sequence>
    <xsd:element name="value" type="xsd:string"/>
    <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
    <xsd:element name="alternate" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

次の表に、エンティティ抽出ディクショナリのXMLスキーマの一部を示します。

要素名 説明

ディクショナリ

エンティティのコレクション

entities

言語ごとのエンティティのコレクション

entity

各エンティティ

value

エンティティ参照

type

エンティティ・タイプ

alternate

エンティティの代替形式

属性名 要素名 説明

言語

Entities

エンティティ内の各エンティティの言語名

16.2.4 ctxloadの例

ctxloadを使用してロードできるエンティティ抽出ユーザー・ディクショナリ・ファイルの例を次に示します。

<?xml version="1.0" encoding="utf-8"?>
<dictionary>
  <entities>
    <entity>
      <value>New York</value>
      <type>city</type>
    </entity>
  </entities>
  <entities language="german">
    <entity>
      <value>Deutschland</value>
      <type>country</type>
    <entity>
  </entities>
  <entities language="english">
    <entity>
      <value>Astra</value>
        <type>person</type>
        <type>organization</type>
    </entity>
    <entity>
      <value>George W. Bush<value>
        <type>person</type>
      <alternate>G. W. Bush<alternate>
      <alternate>G. Bush<alternate>
    </entity>
  </entities>
</dictionary>

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

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

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

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

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

16.3.2 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により生成されたログは$ORACLE_HOME/ctx/logディレクトリにあります。

16.3.3 ctxkbtcの使用上のノート

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

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

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

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

16.3.4 ctxkbtcの制限事項

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

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

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

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

  • Oracle RAC環境では、複数のノード間でORACLE_HOMEを共有するか、または各ノードに独自のORACLE_HOMEを設定できます。次の要件が適用されます。

    • ナレッジ・ベースに依存する機能をいずれかのOracle RACノードで使用する前に、Oracle RAC環境内のすべてのORACLE_HOMEctxkbtcを実行する必要があります。

    • ctxkbtcを使用する際は、Oracle RAC環境内のすべてのORACLE_HOMEで、同一の入力シソーラスの内容を使用する必要があります。

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

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

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

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

16.3.6 シソーラス・リレーションに対する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がある場合も、警告メッセージが表示されるのみです。

    違反のある拡張ストレージ・ベースは設定しないでください。違反のある拡張ストレージ・ベースを使用すると、好ましくない結果を引き起こす場合があります。

16.3.7 ナレッジ・ベースの拡張

Oracle Textのナレッジ・ベースで1つ以上のシソーラスをコンパイルし、提供されているナレッジ・ベースを拡張します。アプリケーション固有の語句および関連情報も拡張されます。テーマ分析時に、ナレッジ・ベースの拡張部分は、ナレッジ・ベースでオーバーラップする語句および関連情報を上書きします。

ナレッジ・ベースの拡張時には、テーマを検証する場合に最適な結果が得られるように、新規語句をナレッジ・ベースのカテゴリの1つにリンクすることをお薦めします。

新規語句を既存のカテゴリから完全に切り離している場合は、新規語句から検証されるテーマが少なくなります。この結果、精度が低下するためABOUT問合せでコールしなおす必要があります。また、要点およびテーマ・ハイライトの品質も低下します。

既存語句を新規語句の上位語にすることによって、新規語句を既存語句にリンクします。

16.3.8 ナレッジ・ベースの拡張例

医学用語の階層を含む医学シソーラス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 

16.3.9 言語固有のナレッジ・ベースの追加

シングルバイトの空白で区切られた言語の独自のナレッジ・ベースをロードして、スペイン語など、英語やフランス語以外の言語に対してテーマ機能を拡張します。

テーマ機能には、テーマの索引付け、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属性値として指定します。

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

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

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

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

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

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

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

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

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

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

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

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

パラメータの説明 制限

語句ごとのRT数(from + to)

32

1階層ごとの語句数(たとえば、指定した最上位語のすべての下位語)

64000

拡張ナレッジ・ベースの新規語句数

100万

ナレッジ・ベースへのユーザー拡張にコンパイル可能な個別のシソーラス数

16

16.4 字句コンパイラ(ctxlc)

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

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

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

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

この項では、次の項目について説明します。

16.4.1 ctxlcの構文

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

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

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

ctxloadの必須の引数

-ja | -zht

変更または作成するレキシコンの言語を指定します。-jaは日本語レキシコンを示し、-zhtは中国語レキシコンを示し、繁体字および簡体字の中国語のいずれも同じです。

-ics character_set

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

-i input_file

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

-ocs character_set

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

ctxloadのオプションの引数

-n

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

16.4.2 ctxlcのパフォーマンスに関する考慮事項

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

16.4.3 ctxlcの使用上のノート

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

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

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

16.4.4 ctxlcの例

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

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

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

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

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