C Oracle Textのテキストのロード例

この付録では、テキスト列にテキストをロードする方法の例を示し、ctxloadインポート・ファイルの構造についても説明します。この付録には、次の項が含まれます。

C.1 SQL INSERTの例

テキスト表に移入する単純な方法としては、CREATE TABLEを使用してidtextという2つの列を含む表を作成し、INSERT文を使用してデータをロードします。この例では、id列を主キーとしています(これはオプションです)。text列は、VARCHAR2です。

create table docs (id number primary key, text varchar2(80));

テキスト列を移入するには、次のようにINSERT文を使用します。

insert into docs values(1, 'this is the text of the first document');
insert into docs values(12, 'this is the text of the second document');

C.2 SQL*Loaderの例

次の例では、SQL*Loaderを使用してオペレーティング・システムからBLOB列に複合フォーマットのドキュメントをロードする方法を説明します。例には、次の2つのステップがあります。

関連項目:

SQL*Loaderの使用方法の詳細は、『Oracle Databaseユーティリティ』を参照してください。

C.2.1 表の作成

この例では、articles_formatted表を次のように作成します。

CREATE TABLE articles_formatted ( 
  ARTICLE_ID   NUMBER PRIMARY KEY , 
  AUTHOR       VARCHAR2(30), 
  FORMAT       VARCHAR2(30), 
  PUB_DATE     DATE, 
  TITLE        VARCHAR2(256), 
  TEXT         BLOB 
);

article_id列は、主キーです。ドキュメントは、BLOB型であるテキスト列にロードされます。

C.2.2 SQL*Loaderコマンドの発行

次のコマンドによって、制御ファイルLOADER1.DATを読み込むローダーを起動します。

sqlldr userid=demo/password control=loader1.dat log=loader.log
C.2.2.1 制御ファイルの例: loader1.dat

このSQL*Loader制御ファイルは、ロードされる列を定義し、loader2.datからarticles_formatted表にデータを1行ずつロードするようにローダーに指示します。loader2.datの各行は、ロードするフィールドのカンマで区切られたリストを格納します。

-- load file example
load data
INFILE 'loader2.dat'
INTO TABLE articles_formatted
APPEND
FIELDS TERMINATED BY ','
(article_id SEQUENCE (MAX,1),
 author CHAR(30),
 format,
 pub_date SYSDATE,
 title,
 ext_fname FILLER CHAR(80),
 text LOBFILE(ext_fname) TERMINATED BY EOF)

この制御ファイルは、次の方法で、loader2.datからarticles_formatted表にデータをロードするようにローダーに指示します。

  1. loader2.datのドキュメント・フィールドを示す行の順番を、article_id列に書き込みます。

  2. 行の1番目のフィールドをauthor列に書き込みます。

  3. 行の2番目のフィールドをformat列に書き込みます。

  4. SYSDATEによって指定された現在の日付をpub_date列に書き込みます。

  5. 行の3番目のフィールドであるドキュメントのタイトルを、title列に書き込みます。

  6. ロードするドキュメントのすべての名前をext_fname一時変数にロードし、実際のドキュメントをBLOB型のtext列にロードします。

C.2.2.2 データ・ファイルの例: loader2.dat

このファイルには、表articles_formattedの各行にロードされるデータが含まれます。

各行には、articles_formattedにロードされるフィールドの、カンマで区切られたリストがあります。各行の最後のフィールドは、テキスト列にロードされるファイルの名前を示します。

Ben Kanobi, plaintext,Kawasaki news article,../sample_docs/kawasaki.txt,
Joe Bloggs, plaintext,Java plug-in,../sample_docs/javaplugin.txt,
John Hancock, plaintext,Declaration of Independence,../sample_docs/indep.txt,
M. S. Developer, Word7,Newsletter example,../sample_docs/newsletter.doc,
M. S. Developer, Word7,Resume example,../sample_docs/resume.doc,
X. L. Developer, Excel7,Common example,../sample_docs/common.xls,
X. L. Developer, Excel7,Complex example,../sample_docs/solvsamp.xls,
Pow R. Point, Powerpoint7,Generic presentation,../sample_docs/generic.ppt,
Pow R. Point, Powerpoint7,Meeting presentation,../sample_docs/meeting.ppt,
Java Man, PDF,Java Beans paper,../sample_docs/j_bean.pdf,
Java Man, PDF,Java on the server paper,../sample_docs/j_svr.pdf,
Ora Webmaster, HTML,Oracle home page,../sample_docs/oramnu97.html,
Ora Webmaster, HTML,Oracle Company Overview,../sample_docs/oraoverview.html,
John Constable, GIF,Laurence J. Ellison : portrait,../sample_docs/larry.gif,
Alan Greenspan, GIF,Oracle revenues : Graph,../sample_docs/oragraph97.gif,
Giorgio Armani, GIF,Oracle Revenues : Trend,../sample_docs/oratrend.gif,

C.3 ctxloadシソーラス・インポート・ファイルの構造

この項では、ctxloadシソーラス・インポート・ファイルの構造の次のトピックについて説明します。

C.3.1 インポート・ファイル形式

シソーラスのインポート・ファイルのエントリには、次の形式を使用する必要があります。

phrase
 BT broader_term
 NT narrower_term1
 NT narrower_term2
. . .
 NT narrower_termN

 BTG broader_term
 NTG narrower_term1
 NTG narrower_term2
. . .
 NTG narrower_termN

 BTP broader_term
 NTP narrower_term1
 NTP narrower_term2
. . .
 NTP narrower_termN

 BTI broader_term
 NTI narrower_term1
 NTI narrower_term2
. . .
 NTI narrower_termN

 SYN synonym1
 SYN synonym2
. . .
 SYN synonymN
 
 USE synonym1  or  SEE synonym1 or  PT  synonym1

 RT related_term1
 RT related_term2
. . .
 RT related_termN

 SN text

 language_key: term
phrase

シノニム、上位語、下位語または関連語を持つワードまたは句です。

ISO-2788標準に従って、TTマーカーを句の前に置くことで、句が階層の最上位語であることを明示できますが、TTマーカーが必ず必要であるということはありません。実際、ctxloadはインポート時にTTマーカーを無視します。

最上位語は上位語(BT、BTG、BTPまたはBTI)を持たない句として識別されます。

ノート:

シソーラス問合せ演算子(SYNPTBTBTGBTPBTINTNTGNTPNTIおよびRT)は予約語であるため、シソーラスのエントリで句として使用できません。

BT、BTG、BTP、BTI broader_termN

broader_termNphraseの上位(汎用|部分|インスタンス)語であることを示すマーカーです。

broader_termNは、phraseの一般的な説明またはカテゴリを概念的に提供するワードまたは句です。たとえば、elephantというワードには、land mammalという上位語があります。

NT、NTG、NTP、NTI narrower_termN

narrower_termNphraseの下位(汎用|部分|インスタンス)語であることを示すマーカーです。

phraseに上位(汎用|部分|インスタンス)語がなく、1つ以上の下位(汎用|部分|インスタンス)語がある場合、phraseは各階層内で最上位語として作成されます(Oracle Textのシソーラスでは、BT/NT、BTG/NTG、BTP/NTPおよびBTI/NTI階層は個別の構造体です)。

narrower_termNは、phraseの特定の説明(下位語)を概念的に提供するワードまたは句です。たとえば、elephantというワードには、indian elephantおよびafrican elephantという下位語があります。

SYN synonymN

phraseおよびsynonymNがシノニム・リング内でシノニムであることを示すマーカーです。

synonymNは、phraseと同じ意味を持つワードまたは句です。たとえば、dogというワードには、canineというシノニムがあります。

ノート:

シノニム・リングは、Oracle Textのシソーラスでは明示的に定義されていません。これらは、シノニムの推移的な性質によって作成されます。

USE SEE PT synonym1

phraseおよびsynonym1がシノニム・リング内でシノニムであることを示すマーカーです(SYNに似ています)。

また、USEマーカー、SEEマーカーまたはPTマーカーは、synonym1がシノニム・リングに対する優先語であることを示します。すべてのマーカーがシノニム・リングに対する優先語を定義するために使用できます。

ノート:

ユーザー定義のシソーラスをナレッジ・ベースのコンパイルに使用する場合は、シノニム・リングを宣言するときに優先語を指定する必要があります。キーワードUSE、SEEまたはPTのいずれかを使用して、問合せの一致をレポートするときに使用するシノニムを指定します。優先語に指定できるのは1つの語句のみです。

前述のキーワードを使用しないと、ワードのシノニムで定義した結果が戻されなくなります。同一のシノニム・リングの要素を宣言した複数のシソーラスをコンパイルすると、両方のファイルで優先語が同一になり、これによって、シノニム・リングで1つのワードのみが優先語として定義されます。

RT related_termN

related_termNphraseの関連語であることを示すマーカーです。

related_termNは、phraseに関連する意味を持つが、必ずしもシノニムではないワードまたは句です。たとえば、dogというワードには、wolfという関連語があります。

ノート:

関連語には推移性はありません。句に2つ以上の関連語がある場合、その語はそれぞれ親句と関連しているだけであり、関連語同士が互いに関連しているわけではありません。

SN text

後続のtextが、前のエントリのスコープ・ノート(たとえば、コメント)であることを示すマーカーです。

language_key term

termは、language_keyで指定された言語に翻訳された句です。

C.3.2 代替階層構造

シソーラスの規格に従い、ロード・ファイルは、最上位語の下に語句をインデントし、語句のレベルを含むNT(またはNTG、NTP、NTI)マーカーを使用することによって、書式設定階層(BT/NT、BTG/NTG、BTP、NTP、BTI/NTI)をサポートします。

phrase
   NT1 narrower_term1
      NT2 narrower_term1.1
      NT2 narrower_term1.2
          NT3 narrower_term1.2.1
          NT3 narrower_term1.2.2
   NT1 narrower_term2
   . . .
   NT1 narrower_termN

この方法によって、最上位語のブランチ全体を、ロード・ファイル内で階層的に表示できます。

C.3.3 インポート・ファイル内の語句の使用上のノート

インポート・ファイルのエントリの構造には、次の条件が適用されます。

  • 各エントリ(phraseBT、NTまたはSYN)は、改行に続く1行以内でまとめる必要があります。

  • エントリは、1つのワードまたは句で構成されます。

  • エントリ(phrase、BT、NTまたはSYN)の最大長は、255バイトです。この中にはBT、NTおよびSYNのマーカーまたは改行は含まれません。

  • エントリにカッコまたはプラス符号は指定できません。

  • 関連語句(BT、NTなど)で始まるファイルのすべての行は、行頭に1つ以上の空白が必要です。

  • ファイルには、同じphraseを2回以上使用できます。

  • phraseには1つ以上の下位語エントリ(NT、NTG、NTP)、上位語エントリ(BT、BTG、BTP)、シノニム・エントリおよび関連語エントリを指定できます。

  • 上位語、下位語、シノニムおよび優先語のエントリは、それぞれ適切なマーカーで始める必要があります。また、マーカーは大文字で指定します。

  • phraseには、上位語、下位語およびシノニムをどのような順序でも指定できます。

  • 同形異義語を使用する場合は、その後に意味を限定する語をカッコで囲んで指定する必要があります。

    たとえば、cranes(birds)、cranes(lifting equipment)のように指定します。

  • コンパウンド語句は、各要素の間にプラス記号を入れます(例: buildings + construction)。

  • コンパウンド語句は、他の語句に対するシノニムまたは優先語としてのみ使用できます。コンパウンド語句自体は語句として使用できません。また、階層関係にも使用できません。

  • 語句に続く行に、最大2000バイトまでのスコープ・ノート(SN)を指定できます。

  • 複数行に渡るスコープ・ノートを作成できますが、ノートの各行にSNマーカーが必要です。

不適切なSNの使用例

VIEW CAMERAS
 SN Cameras with through-the lens focusing and a
range of movements of the lens plane relative to
the film plane

適切なSNの使用例

VIEW CAMERAS
 SN Cameras with through-the lens focusing and a
 SN range of movements of the lens plane relative
 SN to the film plane
  • 複数ワードの語句を、予約語で始めることはできません(たとえば、useという語句は予約語であるため、use other doorは語句として使用できません。ただし、useという語句は使用可能です)。

C.3.4 インポート・ファイル内の関連語句の使用上のノート

インポート・ファイルのエントリに定義される関連語句には、次の条件が適用されます。

  • 関連語エントリは、句または別の関連語エントリの後に続けて指定する必要があります。

  • 関連語エントリは1つ以上の空白から始め、RTマーカーの後に空白を入れ、その同じ行に関連語を指定します。

  • 複数の関連語には複数のRTマーカーが必要です。

    不適切なRTの使用例

    MOVING PICTURE CAMERAS
     RT CINE CAMERAS 
    TELEVISION CAMERAS
    

    適切なRTの使用例

    MOVING PICTURE CAMERAS
     RT CINE CAMERAS
     RT TELEVISION CAMERAS
    
  • 語句には、複数の上位語、下位語および関連語を指定できます。

C.3.5 インポート・ファイルの例

この項では、正しく形式設定されたシソーラスのインポート・ファイルの例を3つ示します。

C.3.5.1 例1(フラット構造)
cat
 SYN feline
 NT domestic cat
 NT wild cat
 BT mammal
mammal
 BT animal
domestic cat
 NT Persian cat
 NT Siamese cat
wild cat
 NT tiger
tiger
 NT Bengal tiger
dog
 BT mammal
 NT domestic dog
 NT wild dog
 SYN canine
domestic dog
 NT German Shepard
wild dog
 NT Dingo
C.3.5.2 例2(階層構造)
animal
   NT1 mammal
        NT2 cat
             NT3 domestic cat
                  NT4 Persian cat
                  NT4 Siamese cat
             NT3 wild cat
                  NT4 tiger
                       NT5 Bengal tiger
        NT2 dog
             NT3 domestic dog
                  NT4 German Shepard
             NT3 wild dog
                  NT4 Dingo
cat
 SYN feline
dog
 SYN canine
C.3.5.3 例3
35MM CAMERAS
 BT MINIATURE CAMERAS
CAMERAS
 BT OPTICAL EQUIPMENT
 NT MOVING PICTURE CAMERAS
 NT STEREO CAMERAS
LAND CAMERAS
 USE VIEW CAMERAS
VIEW CAMERAS
 SN Cameras with through-the lens focusing and a range of 
 SN movements of the lens plane relative to the film plane
 UF LAND CAMERAS
 BT STILL CAMERAS