IBM Books

管理およびプログラミングの手引き

テキスト・エクステンダーを使用して構造化テキスト検索を行う

XML 文書構造を検索しているとき、 XML エクステンダーは汎用データ・タイプに変換された要素および属性値を検索しますが、 テキストは検索しません。 DB2 UDB テキスト・エクステンダーを使用して、XML について使用可能にされた列上で、 構造化または全テキスト検索を行うことができます。 テキスト・エクステンダーは、DB2 UDB バージョン 6.1 以降で XML 文書検索をサポートします。

構造化テキスト検索
XML 文書のツリー構造に基づいてテキスト・ストリングを検索します。 たとえば、文書構造 /Order/Customer/Name があり、 文字ストリング "IBM" を <Customer> 副次要素内で検索したい場合、 構造化テキスト検索を使用できます。 その文書にはさらに、ストリング IBM が <Comment> 副次要素内に、 または製品の一部の名前として使用されている可能性があります。 構造化テキスト検索は、指定した要素内だけでストリングを検索します。 この例では、</Order/Customer/Name> 副次要素内に IBM がある文書だけが見つかります。 他の要素内に IBM があっても </Order/Customer/Name> 副次要素にはない文書は戻されません。

全テキスト検索
要素または属性に関係なく、文書全体でテキスト・ストリングを検索します。 前述の例を使用すると、文字ストリング IBM がどこに出現するかには関係なく、 ストリング IBM のあるすべての文書が戻されます。

テキスト・エクステンダー検索を使用するには、DB2 テキスト・エクステンダーをインストールして、 データベースおよび表を以下に示すように使用可能にしなければなりません。 テキスト・エクステンダー検索の使用方法を学ぶには、 DB2 ユニバーサル・データベース テキスト・エクステンダー 管理およびプログラミング でテキスト・エクステンダーの UDF による検索に関する章を参照してください。

テキスト・エクステンダーについて XML 列を使用可能にする

XML について使用可能にされているデータベースがあると仮定して、以下のステップを使用して、 XML について使用可能にされた列の内容を検索するためにテキスト・エクステンダーを使用可能にします。 例を示すために、データベースの名前が SALES_DB、表の名前が ORDER、 そして XML 列の名前が XVARCHAR および XCLOB であるとします。

  1. エクステンダー CD の install.txt ファイルを参照して、 テキスト・エクステンダーのインストール方法を学んでください。
  2. 以下の場所のいずれかから、 txstart コマンドを入力します。
  3. テキスト・エクステンダーコマンド行ウィンドウをオープンします。 このステップでは、SALES_DB という名前のデータベース、 および ORDER という名前の表があり、 それには XVARCHAR および XCLOB という名前の 2 つの XML 列があると仮定します。 dxx\samples\c 内のサンプル・プログラムを実行しなければならない場合があります。
  4. データベースに接続します。 db2tx コマンド・プロンプトから、以下のようにタイプします。

    'connect to SALES_DB'
    
  5. テキスト・エクステンダーに関してデータベースを使用可能にします。

    db2tx コマンド・プロンプトから、以下のようにタイプします。

    'enable database'
    
  6. テキスト・エクステンダーに関して XML 表内の列を使用可能にして、 XML 文書のデータ・タイプ、言語、コード・ページ、および列に関するその他の情報を定義します。
  7. 索引の状況を検査します。
  8. XML 文書モデルを、 desmodel.ini と呼ばれる文書モデル ini ファイルで定義します。 このファイルは、UNIX では /db2tx/txins000、 Windows NT では \instance\\db2tx\txins000、 そして初期設定ファイル内のセクションにあります。 たとえば、textmodel.ini の場合、以下のようになります。

    ;list of document models
    [MODELS]
    modelname=Order
     
    ; an 'Order' document model definition
    ; left side = section name identifier
    ; right side = section name tag
     
    [Order]
    Order = /Order
    Order/Customer/Name = /Order/Customer/Name
    Order/Customer/Email = /Order/Customer/Email
    Order/Part/@color = /Order/Part/@color
    Order/Part/Shipment/ShipMode = /Order/Part/Shipment/ShipMode
    

テキスト・エクステンダーを使用してテキストを検索する

テキスト・エクステンダーの検索機能は、XML エクステンダーの文書の構造化検索と一緒に使用できます。 推奨される方式は、文書要素または属性を検索する照会を作成して、 テキスト・エクステンダーを使用して要素内容または属性値を検索することです。

例: 以下のステートメントは、 テキスト・エクステンダーを使用して XML 文書テキストを検索します。 DB2 コマンド・ウィンドウから、以下のようにタイプします。

'connect to SALES_DB'
'select xvarchar from order where db2tx.contains(varcharhandle,
	 'model Order section(Order/Customer/Name) "Motors"')=1'
'select xclob from order where db2tx.contains(clobhandle,
	 'model Order section(Order/Customer/Name) "Motors"')=1'

テキスト・エクステンダー Contains() UDF は検索を実行します。

この例には、テキスト・エクステンダーを使用して列データを検索するために必要なすべてのステップは含まれていません。 テキスト・エクステンダー検索の概念および機能を学ぶには、 DB2 ユニバーサル・データベース テキスト・エクステンダー 管理およびプログラミング でテキスト・エクステンダーの UDF による検索に関する章を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]