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で指定したシソーラス・インポート・ファイルのエントリを移入します。-thescaseをy (大/小文字が区別されるシソーラス)にすると、
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
コンパイラを使用して、次の操作を実行できます。
-
Oracle Textのナレッジ・ベースで1つ以上のシソーラスをコンパイルし、使用しているナレッジ・ベースを拡張します。アプリケーション固有の語句および関連情報も拡張されます。テーマ分析時に、ナレッジ・ベースの拡張部分は、ナレッジ・ベースでオーバーラップする語句および関連情報を上書きします。
-
1つ以上のシソーラスをコンパイルして新しいユーザー定義のナレッジ・ベースを作成します。英語とフランス語以外の言語では、この機能は、言語固有のナレッジ・ベースの作成に使用できます。
ノート:
CTXSYS
を使用した場合のみナレッジ・ベースを拡張できます。この項では、次の項目について説明します。
関連項目:
ABOUT
演算子の詳細は、「Oracle Text CONTAINS問合せ演算子」の「ABOUT」演算子を参照してください。ドキュメント・サービスの詳細は、「CTX_DOCパッケージ」を参照してください。
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_HOME
でctxkbtc
を実行する必要があります。 -
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
を使用したテーマ、要点およびテーマ・サマリーの生成などの機能が含まれます。
テーマ機能は、ユーザー定義ナレッジ・ベースを追加して拡張します。たとえば、スペイン語シソーラスからスペイン語のナレッジ・ベースを作成できます。
言語固有のナレッジ・ベースをロードするステップは、次のとおりです。
-
ユーザー定義シソーラスを
ctxload
を使用してロードします。 -
language部分がターゲット言語になるように、NLS_LANGを設定します。charset部分は、シングルバイト・キャラクタ・セットに設定する必要があります。
-
ロード済のシソーラスを
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.4 字句コンパイラ(ctxlc)
字句コンパイラ(ctxlc
)は、ユーザー独自の中国語および日本語レキシコン(ディクショナリ)の作成に使用できる、コマンドライン・ユーティリティです。このレキシコンは、ユーザーが作成したワード・リストから生成したり、その言語のシステム・レキシコンとワード・リストをマージして生成できます。
ctxlc
により、現行ディレクトリに新しいレキシコンが作成されます。新しいレキシコンは、drold.dat
、drolk.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のオプションの引数
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
日本語と中国語のシステム・レキシコン・ファイルは、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
というファイルが作成されます。