Oracle Content DBのグローバリゼーション・サポートによって、単一のOracle Content DBインスタンスに、異なるキャラクタ・セットおよび言語を含む複数のドキュメントを格納および検索できます。グローバリゼーション・インフラストラクチャによって、リソース文字列、エラー・メッセージ、ソート順序、日付、時間、数値およびカレンダの表記規則に、システム固有の言語およびロケールが自動的に適用されます。
グローバリゼーション・サポートはOracle Content DBリポジトリに実装されているため、プロトコル・サーバーなどの他の依存プロセスがこのサポートを共有および使用できます。リポジトリに対するグローバリゼーションの主な目的は、異なるキャラクタ・セットおよび言語を含むドキュメントを効率よく格納し、これらのドキュメントの更新、取得および検索操作が効率的に行われるようにすることです。
この付録では、次の項目について説明します。
リポジトリ内では、すべてのメタデータ文字列(ドキュメントの名前や説明など)は、Oracle DatabaseのVARCHAR2データ型で格納されます。このデータ型で格納された文字列は、データベース作成時に指定されたデータベース・キャラクタ・セットにエンコードされます。ただし、ドキュメント自体は非構造化データであり、Oracle Databaseのラージ・オブジェクト・データ型の1つであるBLOBデータ型で格納されます。BLOBデータ型では、コンテンツがそのままの状態で格納され、ドキュメントのコンテンツのキャラクタ・セットが変換されることはありません。LONGおよびCLOBデータ型では、コンテンツはデータベース・キャラクタ・セットで格納されます。この場合、キャラクタ・セット変換が行われます。変換によって、データ整合性が損われたり、文字が不適切に変換されたり、文字が失われる可能性があります。
ドキュメントのコンテンツに対して作成された全文検索索引は、データベース・キャラクタ・セットにエンコードされます。ドキュメントのコンテンツを索引付けすると、BLOBデータはコンテンツのキャラクタ・セットからデータベース・キャラクタ・セットに変換され、索引のテキストおよびトークンが生成されます。コンテンツのキャラクタ・セットがデータベース・キャラクタ・セットのサブセットではない場合、変換によってガベージ・トークンが作成されます。たとえば、データベース・キャラクタ・セットがISO 8859-1(西ヨーロッパ言語)である場合、Shift-JIS(日本語)のドキュメントを正しく索引付けすることができません。コンテンツを効率的に検索できるようにするには、データベース・キャラクタ・セットを選択する際に、ユーザーが格納したドキュメントのキャラクタ・セットを考慮する必要があります。
Oracle Content DBインスタンスに多言語ドキュメントを格納する場合、推奨するデータベース・キャラクタ・セットはAL32UTF8です。AL32UTF8は、Unicode標準に定義された文字をサポートします。Unicode標準は、同じアプリケーションまたはデータベース上に多くの異なる言語が混在する場合の問題を解決します。Unicodeは、単一のグローバル・キャラクタ・セットであり、すべての主要な既存のスクリプトを含み、国際標準に準拠しています。Unicodeは、プラットフォーム、プログラムまたは言語に関係なく、すべての文字に一意のコード値を提供します。AL32UTF8は、Unicodeの8ビット・エンコーディングです。これは、可変長エンコーディングであり、ASCIIの厳密なスーパーセットです。1つのUnicode文字は、AL32UTF8エンコーディングでは1バイト、2バイト、3バイトまたは4バイトになります。ヨーロッパ言語スクリプトの文字は、1バイトまたは2バイトのいずれかで表現されます。ほぼすべてのアジア言語スクリプトの文字は、3バイトで表現されます。補助文字は、4バイトで表現されます。Unicodeベースのファイル・システムを使用すると、1つのシステム内で、様々な言語プリファレンスを持つ複数のユーザーが、様々な言語のドキュメントのコンテンツおよびメタデータを共有できます。
様々なキャラクタ・セットおよび言語を含む複数のドキュメントを1つのファイル・システムでサポートするために、リポジトリでは各ドキュメントに2つのグローバリゼーション属性(キャラクタ・セット属性と言語属性)が関連付けられます。
ドキュメントのキャラクタ・セットは、様々な状況で使用されます。ドキュメントのコンテンツがファイルにレンダリングされる場合、そのドキュメントのキャラクタ・セットがファイルのキャラクタ・コードとして使用されます。ドキュメントがブラウザで表示される場合、そのドキュメントのキャラクタ・セットがHTTP content-typeヘッダーに設定されます。Oracle Textは、全文検索索引をテキスト・ドキュメントに構築する前に、そのドキュメントのキャラクタ・セットを使用してデータをデータベース・キャラクタ・セットに変換します。キャラクタ・セットが更新されると、コンテンツが再度索引付けされます。
ドキュメントの挿入時にキャラクタ・セットが指定されない場合、リポジトリでは、Localizerオブジェクトに格納されたユーザーのライブラリ・セッションのキャラクタ・セットを使用して、デフォルト・キャラクタ・セットを決定します。デフォルト・キャラクタ・セットは、ユーザーのライブラリ・セッションの初期化時にユーザーのプライマリ・ユーザー・プロファイル情報から取得されます。
ドキュメントの言語は、特定の言語のドキュメントを検索する際に、検索条件を限定するために使用されます。また、Oracle Textで、ドキュメントに全文検索索引を構築するためにも使用されます。Oracle Textのマルチレクサー機能は、言語を使用して特定のレクサーを識別し、ドキュメントに検索可能なワードが含まれているかどうかを解析します。索引を構築する前に、言語固有のレクサーを定義し、言語と関連付けておく必要があります。表F-1に、言語固有のレクサーを示します。
表F-1 言語固有のレクサー
言語 | レクサー | レクサー・オプション |
---|---|---|
ポルトガル語(ブラジル) |
BASIC_LEXER |
BASE LETTER |
フランス語(カナダ) |
BASIC_LEXER |
BASE LETTER INDEX THEME |
デンマーク語 |
BASIC_LEXER |
BASE LETTER DANISH ALTERNATE SPELLING |
オランダ語 |
BASIC_LEXER |
BASE LETTER |
フィンランド語 |
BASIC_LEXER |
BASE LETTER |
フランス語 |
BASIC_LEXER |
BASE LETTER INDEX THEME THEME LANGUAGE=FRENCH |
ドイツ語 |
BASIC_LEXER |
BASE LETTER GERMAN ALTERNATE SPELLING |
イタリア語 |
BASIC_LEXER |
BASE LETTER |
日本語 |
JAPANESE_VGRAM_LEXER |
適用なし |
韓国語 |
KOREAN_LEXER |
適用なし |
スペイン語(南米) |
BASIC_LEXER |
BASE LETTER |
ポルトガル語(スペイン) |
BASIC_LEXER |
BASE LETTER |
中国語(簡体字) |
CHINES_VGRAM_LEXER |
適用なし |
スウェーデン語 |
BASIC_LEXER |
BASE LETTER SWEDISH ALTERNATE SPELLING |
中国語(繁体字) |
CHINESE_VGRAM_LEXER |
適用なし |
その他 |
BASIC_LEXER |
INDEX THEME THEME LANGUAGE=ENGLISH INDEX TEXT |
BASIC_LEXERは、シングルバイト言語に使用され、単語のセパレータとして空白を使用します。アジア言語のレクサーでは、単語のセパレータに空白を使用できません。かわりに、V-GRAMアルゴリズムを使用して、ドキュメントを検索可能なトークン単位に分解します。Oracle Textがサポートしていない言語は、英語として解析されます。Oracle Content DBでは、Oracle Textのマルチレクサー機能を使用します。これは、ドイツ語、デンマーク語、スウェーデン語、日本語、中国語(簡体字)、中国語(繁体字)および韓国語のサブレクサーを含むグローバル・レクサーです。
ドキュメントの挿入時に言語が指定されない場合、リポジトリでは、デフォルトの言語を次のとおり決定します。
キャラクタ・セットが設定されていると、ほとんどの場合、そのキャラクタ・セットの値に基づいて最良予測アルゴリズムによって言語が選択されます。たとえば、キャラクタ・セットがShift-JISに設定されたドキュメントは、ほとんどの場合日本語です。
デフォルトの言語は、ユーザーのライブラリ・セッションのLocalizerから取得されます。ライブラリ・セッションの初期化時に、ユーザーのプライマリ・ユーザー・プロファイルからデフォルトの言語が取得されます。
Oracle Internet Directoryで新しいユーザーを作成する際に、デフォルト言語およびデフォルト・キャラクタ・セットが指定されます。
Oracle Content DBは、Oracleグローバリゼーション・サポートの言語の略称を使用して言語を識別します。Oracle Content DBがサポートしている言語のリストは、「Oracle Content DBでサポートされているドキュメント言語」を参照してください。
一部のプロトコルは、マルチバイトのユーザー名をサポートしていません。WebDAVおよびHTTPは、マルチバイト文字を含むユーザー名では使用できません。また、一部のプロトコルでは、ユーザー・パスワードがASCII形式である必要があります。
表F-2に、Oracle Content DBでサポートされているキャラクタ・セットを示します。
表F-2 Oracle Content DBでサポートされているキャラクタ・セット
言語 | IANAの推奨MIMEキャラクタ・セット | IANAの追加の別名 | Javaエンコーディング | Oracleキャラクタ・セット |
---|---|---|---|---|
アラビア語(ISO) |
iso-8859-6 |
ISO_8859-6:1987、iso-ir-127、ISO_8859-6、ECMA-114、ASMO-708、arabic、csISOLatinArabic |
ISO8859_6 |
AR8ISO8859P6 |
アラビア語(Windows) |
windows-1256 |
なし |
Cp1256 |
AR8MSWIN1256 |
バルト語(ISO) |
iso-8859-4 |
csISOLatin4、iso-ir-110、ISO_8859-4、ISO_8859-4:1988、l4、latin4 |
ISO8859_4 |
NEE8ISO8859P4 |
バルト語(Windows) |
windows-1257 |
なし |
Cp1257 |
BLT8MSWIN1257 |
中央ヨーロッパ語(DOS) |
ibm852 |
cp852、852、csPcp852 |
Cp852 |
EE8PC852 |
中央ヨーロッパ語(ISO) |
iso-8859-2 |
csISOLatin2、iso-ir-101、iso8859-2、iso_8859-2、iso_8859-2:1987、l2、latin2 |
ISO8859_2 |
EE8ISO8859P2 |
中央ヨーロッパ語(Windows) |
windows-1250 |
x-cp1250 |
Cp1250 |
EE8MSWIN1250 |
中国語 |
iso-2022-cn (IANAでは定義されていないが、MIMEドキュメントで使用する。) |
csISO2022CN |
ISO2022CN |
ISO2022-CN |
中国語(簡体字)(GB2312) |
gb2312 |
chinese、csGB2312、csISO58GB231280、GB2312、GB_2312-80、iso-ir-58 |
EUC_CN |
ZHS16CGB231280 |
中国語(簡体字)(GB18030) |
GB18030 |
なし |
GB18030 |
ZHS32GB18030 |
中国語(簡体字)(Windows) |
GBK |
windows-936 |
GBK |
ZHS16GBK |
中国語(繁体字) |
big5 |
csbig5、x-x-big5 |
Big5 |
ZHT16BIG5 |
中国語(繁体字) |
windows-950 |
なし |
MS950 |
ZHT16MSWIN950 |
中国語(繁体字)(EUC-TW) |
EUC-TW |
なし |
EUC_TW |
ZHT32EUC |
中国語(繁体字)(Big5-HKSCS) |
Big5-HKSCS |
なし |
Big5_HKSCS |
ZHT16HKSCS |
キリル文字(DOS) |
ibm866 |
cp866、866、csIBM866 |
Cp866 |
RU8PC866 |
キリル文字(ISO) |
iso-8859-5 |
csISOLatinCyrillic、cyrillic、iso-ir-144、ISO_8859-5、ISO_8859-5:1988 |
ISO8859_5 |
CL8ISO8859P5 |
キリル文字(KOI8-R) |
koi8-r |
csKOI8R、koi |
KOI8_R |
CL8KOI8R |
キリル・アルファベット(Windows) |
windows-1251 |
x-cp1251 |
Cp1251 |
CL8MSWIN1251 |
ギリシア語(ISO) |
iso-8859-7 |
csISOLatinGreek、ECMA-118、ELOT_928、greek、greek8、iso-ir-126、ISO_8859-7、ISO_8859-7:1987、csISOLatinGreek |
ISO8859_7 |
EL8ISO8859P7 |
ギリシア語(Windows) |
windows-1253 |
なし |
Cp1253 |
EL8MSWIN1253 |
ヘブライ語(ISO) |
iso-8859-8 |
csISOLatinHebrew、hebrew、iso-ir-138、ISO_8859-8、visual、ISO-8859-8 Visual、ISO_8859-8:1988 |
ISO8859_8 |
IW8ISO8859P8 |
ヘブライ語(Windows) |
windows-1255 |
なし |
Cp1255 |
IW8MSWIN1255 |
日本語(JIS) |
iso-2022-jp |
csISO2022JP |
ISO2022JP |
ISO2022-JP |
日本語(EUC) |
euc-jp |
csEUCPkdFmtJapanese、Extended_UNIX_Code_Packed_Format_for_Japanese、x-euc、x-euc-jp |
EUC_JP |
JA16EUC |
日本語(Shift-JIS) |
shift_jis |
csShiftJIS、csWindows31J、ms_Kanji、shift-jis、x-ms-cp932、x-sjis |
MS932 |
JA16SJIS |
韓国語 |
ks_c_5601-1987 |
csKSC56011987、korean、ks_c_5601、euc-kr、csEUCKR |
EUC_KR |
KO16KSC5601 |
韓国語(ISO) |
iso-2022-kr |
csISO2022KR |
ISO2022KR |
ISO2022-KR |
韓国語(Windows) |
windows-949 |
なし |
MS949 |
KO16MSWIN949 |
南ヨーロッパ語(ISO) |
iso-8859-3 |
ISO_8859-3、ISO_8859-3:1988、iso-ir-109、latin3、l3、csISOLatin3 |
ISO8859_3 |
SE8ISO8859P3 |
タイ語 |
TIS-620 |
windows-874 |
TIS620 |
TH8TISASCII |
トルコ語(Windows) |
windows-1254 |
なし |
Cp1254 |
TR8MSWIN1254 |
トルコ語(ISO) |
iso-8859-9 |
latin5、l5、csISOLatin5、ISO_8859-9、iso-ir-148、ISO_8859-9:1989 |
ISO8859_9 |
WE8ISO8859P9 |
汎用(UTF8) |
utf-8 |
unicode-1-1-utf-8、unicode-2-0-utf-8、x-unicode-2-0-utf-8 |
UTF8 |
UTF8 |
Unicode(UTF-16BE) |
UTF-16BE |
なし |
UTF-16BE |
AL16UTF16 |
Unicode(UTF-16LE) |
UTF16LE |
なし |
UTF-16LE |
AL16UTF16LE |
ベトナム語(Windows) |
windows-1258 |
なし |
Cp1258 |
VN8MSWIN1258 |
西欧アルファベット |
iso-8859-1 |
cp819、ibm819、iso-ir-100、iso8859-1、iso_8859-1、iso_8859-1:1987、latin1、l1、csISOLatin1 |
ISO8859_1 |
WE8ISO8859P1 |
西欧アルファベット(DOS) |
ibm850 |
cp850、850、csIBM850 |
Cp850 |
WE38PC850 |
西欧アルファベット(Windows) |
windows-1252 |
x-ansi |
Cp1252 |
WE8MSWIN1252 |
表F-3に、Oracle Content DBでサポートされているドキュメント言語を示します。サポートされているドキュメント言語は、Oracle Content DBアプリケーションでサポートされている言語とは異なりますので注意してください。
表F-3 Oracle Content DBでサポートされているドキュメント言語
Oracle言語名 | Javaロケール | ISOロケール |
---|---|---|
アラビア語 |
ar |
ar |
ベンガル語 |
bn |
bn |
ポルトガル語(ブラジル) |
pt_BR |
pt-br |
ブルガリア語 |
bg |
bg |
フランス語(カナダ) |
fr_CA |
fr-CA |
カタロニア語 |
ca |
ca |
クロアチア語 |
hr |
hr |
チェコ語 |
cs |
cs |
デンマーク語 |
da |
da |
オランダ語 |
nl |
nl |
エジプト語 |
ar_EG |
ar-eg |
米語 |
en |
en |
英語 |
en_GB |
en-gb |
エストニア語 |
et |
et |
フィンランド語 |
fi |
fi |
フランス語 |
fr |
fr |
ドイツ語 |
de |
de |
ギリシア語 |
el |
el |
ヘブライ語 |
he |
he |
ハンガリー語 |
hu |
hu |
アイスランド語 |
is |
is |
インドネシア語 |
id |
in |
イタリア語 |
it |
it |
日本語 |
ja |
ja |
韓国語 |
ko |
ko |
スペイン語(南米) |
es |
es |
ラトビア語 |
lv |
lv |
リトアニア語 |
lt |
lv |
マレー語 |
ms |
ms |
スペイン語(メキシコ) |
es_MX |
es-mx |
ノルウェー語 |
no |
no |
ポーランド語 |
pl |
pl |
ポルトガル語 |
pt |
pt |
ルーマニア語 |
ro |
ro |
ロシア語 |
ru |
ru |
中国語(簡体字) |
zh_CN |
zh-cn |
スロバキア語 |
sk |
sk |
スロベニア語 |
sl |
sl |
スペイン語 |
es_ES |
es-es |
スウェーデン語 |
sv |
sv |
タイ語 |
th |
th |
中国語(繁体字) |
zh_TW |
zh-tw |
トルコ語 |
tr |
tr |
ウクライナ語 |
uk |
uk |
ベトナム語 |
vi |
vi |