D Oracle Textの多言語機能
この付録では、Oracle Textの多言語機能について説明します。次の内容について説明します。
D.1 概要
この付録では、Oracle Textの主要な多言語機能の概要を説明します。
Oracleのグローバリゼーション・サポート言語および文字セット・サポートの完全なリストは、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
ノート:
Oracle Textでは、NLS_COMP
およびNLS_SORT
パラメータはサポートされていません。Oracle Textで生成される検索結果は、これらのパラメータの値と無関係です。
Oracle Database 12c リリース2 (12.2)では、Oracle Text索引は、宣言された照合BINARY
、USING_NLS_COMP
、USING_NLS_SORT
またはUSING_NLS_SORT_CS
を使用する列に対してのみ作成できます。Oracle Textの動作は、すべてのサポートされる照合で同様です。
D.2 索引付け
次の各項目で、多言語索引付け機能について説明します。
D.2.1 Oracle Textの索引タイプの多言語機能
次の各項目で、Oracle Textの索引タイプでサポートされている多言語機能について説明します。
関連項目:
使用可能なレクサーについては、「レクサー型」を参照してください。
D.2.1.1 CONTEXT索引タイプ
CONTEXT
索引タイプは、言語および文字セット列の使用を含めて、多言語機能を完全にサポートしています。
次のレクサーをサポートしています。
-
AUTO_LEXER
-
BASIC_LEXER
-
MULTI_LEXER
-
USER_LEXER
-
WORLD_LEXER
-
CHINESE_LEXER
-
CHINESE_VGRAM_LEXER
-
JAPANESE_LEXER
-
JAPANESE_VGRAM_LEXER
-
KOREAN_MORPH_LEXER
D.2.1.2 CTXCAT索引タイプ
CTXCAT
は、テーマの索引付けを除いたBASIC_LEXER
の多言語機能をサポートしており、次の追加レクサーをサポートしています。
-
USER_LEXER
-
WORLD_LEXER
また、CTXCAT
は次のレクサーもサポートしています。
-
CHINESE_LEXER
-
CHINESE_VGRAM_LEXER
-
JAPANESE_LEXER
-
JAPANESE_VGRAM_LEXER
-
KOREAN_MORPH_LEXER
ノート:
Oracle Textの索引タイプCTXCAT
は、Oracle Database 23cでは非推奨です。索引タイプ自体とその演算子CTXCAT
は、将来のリリースで削除される可能性があります。CONTEXT
問合せの代替文法としてCTXCAT
およびCTXCAT
文法の使用はどちらも非推奨です。かわりに、Oracleでは、CONTEXT
索引タイプを使用することをお薦めします。索引タイプは、トランザクション以外のすべての同じ機能を提供できます。CONTEXT
でのトランザクションに近い動作は、SYNC(ON COMMIT)
または短い期間(できればSYNC(EVERY [time-period])
)を使用して実現できます。
CTXCAT
は、通常、索引のサイズが数メガバイトのときに導入されました。最近の大規模な索引は、CTXCAT
で管理が困難な場合があります。CTXCAT
への索引セットの追加は、CONTEXT
索引タイプでFILTER BY
列とORDER BY
列、またはSDATA
列(あるいはその両方)を使用することで、より効率的に実行できます。したがって、CTXCAT
が適切な選択になることはほとんどありません。Oracleでは、より効率的なCONTEXT
索引タイプを選択することをお薦めします。
D.2.2 レクサー型
Oracle Textでは、索引付け処理時にレクサーを選択可能にすることにより、異なる言語の索引付けをサポートしています。指定したレクサーにより、索引付けできる言語が決まります。
表D-1 Oracle Textのレクサー型
レクサー | サポートされている言語 |
---|---|
|
自動的に、内容を調べて索引付け対象の言語を特定し、その言語に適したオプション(ステミングなど)を適用します。各ドキュメントに単一言語が含まれ、識別に役立つテキストの段落が少なくとも2つある場合に最適に機能します。 |
|
スペースで区切られた単語を使用する言語(英語や大半の西ヨーロッパ言語など)のテキストからトークンを抽出します。 |
|
英語、ドイツ語および日本語など、異なる複数言語のドキュメントを含む表を索引付けします。 |
|
中国語テキストからトークンを抽出します。 |
|
中国語テキストからトークンを抽出します。このレクサーは、
|
|
日本語テキストからトークンを抽出します。 |
|
日本語テキストからトークンを抽出します。このレクサーは、
|
|
韓国語テキストからトークンを抽出します。 |
|
特定の言語に索引付けします。 |
|
異なる複数言語のドキュメントを含む表に索引付けします。ドキュメント内の言語を自動検出します |
D.2.3 基本レクサー機能
次の機能は、BASIC_LEXER
のプリファレンスでサポートされています。これらの機能は、BASIC_LEXER
の属性で有効にします。検索結果の精度を上げるために、代替スペル、コンポジットおよび基本文字などの機能を同時に有効にできます。
D.2.3.1 テーマ索引
CONTEXT
索引タイプを持つABOUT
演算子が含まれるドキュメントの概念に索引付けを行い、その後の問合せを可能にします。これらの概念は、Oracle Textのナレッジ・ベースから導出されます。この機能は、英語とフランス語でサポートされています。
この機能は、CTXCAT
索引タイプではサポートされていません。
D.2.3.2 代替スペル
この機能により、ワードを代替スペルで検索できます。たとえば、ドイツ語で代替スペルを有効にすると、grossを検索した場合、großおよびgrossが含まれているドキュメントが戻されます。
この機能は、ドイツ語、デンマーク語およびスウェーデン語でサポートされています。
さらに、ドイツ語は、従来のスペルと改良された(新規の)スペルの両方の規則に基づいて索引付けできます。
関連項目:
D.2.3.3 基本文字変換
この機能により、ティルデ、アクセントおよびウムラウトなどの発音区別記号が含まれているワードおよび含まれていないワードの両方を問い合せることができます。たとえば、スペイン語の基本文字索引を使用すると、energiaを検索した場合、energíaおよびenergiaの両方が含まれているドキュメントが検索されます。
この機能は、英語およびサポートされているその他すべての空白のデリミタ付き言語でサポートされています。英語およびフランス語では、基本レクサーを使用してテーマの索引付けを使用可能にできます。
関連項目:
D.2.3.4 コンポジット
この機能により、指定した語句が複合語の要素として含まれているワードを検索できます。STEM ($
)演算子を使用する必要があります。
たとえば、ドイツ語で$registerを検索した場合、BruttoregistertonneおよびRegistertonneが含まれているドキュメントが検索されます。
この機能は、BASIC_LEXER
のINDEX_STEMS
属性でサポートされているすべての言語で使用できます。
D.2.4 マルチレクサー機能
MULTI_LEXER
レクサーは、異なる複数の言語のドキュメントを含む列の索引付けを可能にします。索引付け時に、Oracle Textは言語列を調べ、言語固有のレクサーに切り替えた後、ドキュメントを処理します。索引付けを実行する前に、各言語のレクサー・プリファレンスを定義します。
マルチレクサーを使用すると、言語ごとに異なるプリファレンスを設定できます。たとえば、ドイツ語のドキュメントではcomposite
をTRUE
に設定し、オランダ語のドキュメントではcomposite
をFALSE
に設定できます。
D.2.5 Worldレクサー機能
MULTI_LEXER
と同様にWORLD_LEXER
レクサーは、異なる複数の言語を含むドキュメントの索引付けを可能にします。ドキュメントの言語を自動的に検出するため、元表に言語列を作成する必要がありません。
WORLD_LEXER
は、すべてのデータベース文字セットをサポートしており、Unicode 5.0標準をサポートしています。複数言語を使用するドキュメントでWORLD_LEXER
を有効に活用するには、AL32UTF-8またはUTF8 Oracle文字セット・エンコーディングを指定する必要があります。これには、補完、またはサロゲート・ペア文字も含まれます。
表D-2および表D-3に、WORLD_LEXER
でサポートされる言語を示します。このリストはUnicode標準の変更に伴って変更される可能性があります。いずれにしても完全なリストとは考えないようにする必要があります。(言語は一般的なグループ分けではなく、Unicodeの言語システムに対応してグループ分けされています。)
表D-2 Worldレクサーでサポートされている言語(空白で区切られる言語)
言語グループ | 含まれる言語 |
---|---|
アラビア語 |
アラビア語、ファルシ語、クルド語、パシュトー語、シンド語、ウルドゥー語 |
アルメニア語 |
アルメニア語 |
ベンガル語 |
アッサム語、ベンガル語 |
Bopomofo |
客家(ハッカ)語、ビンナン語 |
キリル語 |
ベラルーシ語、ブルガリア語、マケドニア語、モルダビア語、ロシア語、セルビア語、セルビア・クロアチア語、ウクライナ語を含む50以上の言語 |
デーヴァナーガリー文字 |
ボジュプリー語、ビハール語、ヒンディー語、カシミール語、マラーティー語、ネパール語、パーリ語、サンスクリット語 |
エチオピア語 |
アムハラ語、ゲーズ語、ティグリニャ語、ティグレ語 |
ジョージア語 |
ジョージア語 |
ギリシャ語 |
ギリシャ語 |
グジャラト語 |
グジャラート語、カッチ語 |
グルムキー語 |
パンジャブ語 |
ヘブライ語 |
ヘブライ語、ラディノ語、イディッシュ語 |
カガンガ文字 |
レジャン語 |
カンナダ語 |
カナラ語、カンナダ語 |
韓国語 |
韓国語、ハンジャ・ハングル語 |
ラテン語 |
アフリカーンス語、アルバニア語、バスク語、ブルトン語、カタロニア語、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エスペラント語、エストニア語、フェロー語、フィジー語、フィンランド語、フラマン語、フランス語、フリジア語、ドイツ語、ハワイ語、ハンガリー語、アイスランド語、インドネシア語、アイルランド語、イタリア語、ラップ語、古典ラテン語、ラトビア語、リトアニア語、マレー語、マルタ語、中国標準語(ピンイン表記)、マオリ語、ノルウェー語、ポーランド語、ポルトガル語、プロヴァンス語、ルーマニア語、サモア語、ゲール語(スコットランド)、スロバキア語、スロベニア語、ソルビア語、スペイン語、スワヒリ語、スウェーデン語、タガログ語、トルコ語、ベトナム語、ウェールズ語 |
マラヤーラム語 |
マラヤーラム語 |
モンゴル語 |
モンゴル語 |
オリヤー語 |
オリヤー語 |
シンハラ語 |
パーリ語、シンハラ語 |
シリア語 |
アラム語、シリア語 |
タミル語 |
タミル語 |
テルグ語 |
テルグ語 |
ターナ語 |
ディベヒ語、モルディブ語 |
表D-3 Worldレクサーでサポートされている言語(空白で区切られない言語)
言語グループ | 含まれる言語 |
---|---|
中国語 |
広東語、中国標準語、ピンイン表音文字 |
日本語 |
日本語(ひらがな、漢字、カタカナ) |
クメール語 |
カンボジア語、クメール語 |
ラオ語 |
ラオ語 |
ミャンマー語 |
ビルマ語 |
タイ語 |
タイ語 |
チベット語 |
ゾンカ語、チベット語 |
表D-4に、Worldレクサーでサポートされていない言語を示します。
表D-4 Worldレクサーでサポートされていない言語
言語グループ | 含まれる言語 |
---|---|
ブヒッド語 |
ブヒッド語 |
カナダ音節文字 |
ブラックフット語、カリエール語、クリー語、ダケール語、イヌイット語、イヌクティトゥト語、ナスカピ語、ヌナヴィク語、ヌナブト語、オジブウェー語、サリッシュ語、スレーベイ語 |
チェロキー語 |
チェロキー語 |
キプロス方言 |
キプロス方言 |
リンブ語 |
リンブ語 |
オガム文字 |
オガム文字 |
ルーン語 |
ルーン語 |
タイ・ルー語 |
タイ・ルー語 |
ウガリット語 |
ウガリット語 |
イ語 |
イ語 |
易経の六線星形 |
易経 |
D.3 問合せ
Oracle Textでは、様々な問合せ演算子の使用をサポートしています。一部の演算子は、ご使用の言語にあわせて動作するよう設定できます。この項では、これらの演算子の多言語問合せ機能の概要を説明します。
-
ABOUT
演算子を使用して概念を問い合せます。システムは、索引のテーマ・コンポーネントの概念情報を検索します。この機能は、CONTEXT
索引を持つ英語とフランス語でサポートされています。 -
FUZZY演算子を使用すると、指定したワードと類似したスペルを持つワードを検索できます。Oracle Textでは、英語、フランス語、ドイツ語、イタリア語、オランダ語、スペイン語、ポルトガル語、日本語、光学式文字認識(OCR)および自動言語識別について、
FUZZY
をサポートしています。 -
STEM演算子を使用して、指定した語句と同じ語根を持つ語を検索できます。たとえば、$singというステムは、sang、sung、singという語の問合せに拡張されます。Oracle Textのステマーは、英語、フランス語、スペイン語、イタリア語、ドイツ語、日本語およびオランダ語をサポートしています。
D.4 提供されるストップリスト
デフォルトでは、データベース言語に対応する、Oracle Textで提供されているストップリストを使用して、テキストが索引付けされます。
ストップリストとは、索引付けされないストップワードのリストです。これらは通常は、一般的な単語です(英語ではthis、that、canなど)。デフォルトでは、このような単語はすべて、Oracle Textで提供されるストップリストにおいて定義されています。要件に基づいて、これらのストップリストをカスタマイズすることやストップワードを更新することができます。
サポート対象言語およびストップリストの場所
Oracle Textで提供されるストップリストには、BASIC_LEXER
とAUTO_LEXER
のサポート対象言語すべてについてデフォルトで提供される、ストップワードのリストが含まれています。これらのストップワードは、選択したデータベース言語のインストールまたはアップグレードの間に自動的にロードされます。
デフォルト・ストップリスト(およびその他のデフォルト・プリファレンス)は、$ORACLE_HOME/ctx/admin
ディレクトリにある管理(SQL)ファイルにおいて定義されています。これらのSQLファイルの名前はdrdefLANG.SQL
であり、ここでのLANG
は言語コードを示しています。たとえば、フランス語(言語コード: f
)のデフォルト・ストップリストは、$ORACLE_HOME/ctx/admin/drdeff.sql
ファイルにおいて定義されています。
これらのデフォルト・ストップリストのソース・ファイルは、ストップワードのリストを含んでおり、$ORACLE_HOME/ctx/data/stoplist
ディレクトリにあります。これらのソース・ファイルの名前はdrstopLANG.txt
であり、ここでのLANG
は言語コードを示しています。それらのソース・ファイルの内容は、drdefLANG.sql
ファイルから抽出された語句です。
デフォルト・ストップリストが提供されているすべての言語(およびその言語コード)のリストは、「多言語機能のマトリックス」を参照してください。
独自のストップリストをロードする方法
デフォルトでは、選択したデータベース言語に基づいてインストールまたはアップグレードの間にロードされるdrdefLANG.sql
ファイルは1つのみです。CTX_DDL.LOAD_STOPLIST
プロシージャをコールすると、ストップリストのカスタマイズや、ストップワードのデフォルト・リストの変更ができます。
CTX_DDL.ADD_STOPWORD
(コールごとに1つのストップワードを追加する)とは異なり、CTX_DDL.LOAD_STOPLIST
では、指定した言語のストップワードのソース・ファイルが取得され($ORACLE_HOME/ctx/data/stoplist/drstopLANG.txt
から)、ストップリストにロードされます。
D.5 ナレッジ・ベース
Oracle Textのナレッジ・ベースは、索引付け、ABOUT
問合せ、およびドキュメント・サービスの導出テーマに使用される概念の階層ツリーです。
Oracle Textで提供されているナレッジ・ベースは、英語とフランス語のみです。これらのナレッジ・ベースはデフォルトでインストールされます。
シングルバイトの空白で区切られた言語の独自のナレッジ・ベースをロードして、スペイン語など、英語やフランス語以外の言語に対してテーマ機能を拡張できます。
D.6 多言語機能のマトリックス
サポート対象言語すべての多言語機能を示します。
表D-5 サポートされている言語の多言語機能
言語名 | 言語コード | 代替スペル | ファジー・マッチング | 言語固有レクサー | デフォルト・ストップリスト | ステミング |
---|---|---|---|---|---|---|
アフリカーンス語 |
af |
該当なし |
いいえ |
はい |
はい |
はい |
アラビア語 |
ar |
該当なし |
いいえ |
はい |
はい |
はい |
バスク語 |
eu |
該当なし |
いいえ |
はい |
はい |
はい |
ベラルーシ語 |
be |
該当なし |
いいえ |
はい |
はい |
はい |
ブークモール語(ノルウェー語) |
n |
該当なし |
いいえ |
はい |
はい |
はい |
ブルガリア語 |
bg |
該当なし |
いいえ |
はい |
はい |
はい |
カタロニア語 |
ca |
該当なし |
いいえ |
はい |
はい |
はい |
中国語(簡体字) |
zh-cn |
該当なし |
いいえ |
はい |
はい |
はい |
クロアチア語 |
hr |
該当なし |
いいえ |
はい |
はい |
はい |
チェコ語 |
cs |
該当なし |
いいえ |
はい |
はい |
はい |
デンマーク語 |
dk |
はい |
いいえ |
はい |
はい |
はい |
オランダ語 |
nl |
該当なし |
はい |
はい |
はい |
はい |
英語 |
us |
該当なし |
はい |
はい |
はい |
はい |
エストニア語 |
et |
該当なし |
いいえ |
はい |
はい |
はい |
フィンランド語 |
sf |
該当なし |
いいえ |
はい |
はい |
はい |
フランス語 |
f |
該当なし |
はい |
はい |
はい |
はい |
ガリシア語 |
gl |
該当なし |
いいえ |
はい |
はい |
はい |
ドイツ語 |
d |
はい |
はい |
はい |
はい |
はい |
ギリシャ語 |
el |
該当なし |
いいえ |
はい |
はい |
はい |
ヘブライ語 |
iw |
該当なし |
いいえ |
はい |
はい |
はい |
ヒンディー語 |
hi |
該当なし |
いいえ |
はい |
はい |
はい |
ハンガリー語 |
hu |
該当なし |
いいえ |
はい |
はい |
はい |
アイスランド語 |
is |
該当なし |
いいえ |
はい |
はい |
はい |
インドネシア語 |
in |
該当なし |
いいえ |
はい |
はい |
はい |
イタリア語 |
i |
該当なし |
はい |
はい |
はい |
はい |
日本語 |
ja |
該当なし |
はい |
はい |
はい |
はい |
韓国語 |
ko |
該当なし |
いいえ |
はい |
はい |
はい |
ラトビア語 |
lv |
該当なし |
いいえ |
はい |
はい |
はい |
リトアニア語 |
lt |
該当なし |
いいえ |
はい |
はい |
はい |
マケドニア語 |
mk |
該当なし |
いいえ |
はい |
はい |
はい |
マレー語 |
ms |
該当なし |
いいえ |
はい |
はい |
はい |
ニーノシク語(ノルウェー語) |
nn |
該当なし |
いいえ |
はい |
はい |
はい |
ペルシア語(ファルシ語) |
fa |
該当なし |
いいえ |
はい |
はい |
はい |
ポーランド語 |
pl |
該当なし |
いいえ |
はい |
はい |
はい |
ポルトガル語 |
pt |
該当なし |
はい |
はい |
はい |
はい |
ルーマニア語 |
ro |
該当なし |
いいえ |
はい |
はい |
はい |
ロシア語 |
ru |
該当なし |
いいえ |
はい |
はい |
はい |
スロバキア語 |
sk |
該当なし |
いいえ |
はい |
はい |
はい |
スロベニア語 |
sl |
該当なし |
いいえ |
はい |
はい |
はい |
セルビア語 |
sr |
該当なし |
いいえ |
はい |
はい |
はい |
スペイン語 |
es |
該当なし |
はい |
はい |
はい |
はい |
スウェーデン語 |
sv |
はい |
いいえ |
はい |
はい |
はい |
タイ語 |
th |
該当なし |
いいえ |
はい |
はい |
はい |
中国語(繁体字) |
zh-tw |
該当なし |
いいえ |
はい |
はい |
はい |
トルコ語 |
tr |
該当なし |
いいえ |
はい |
はい |
はい |
ウクライナ語 |
uk |
該当なし |
いいえ |
はい |
はい |
はい |
ウルドゥー語 |
ur |
該当なし |
いいえ |
はい |
はい |
はい |