IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  WebSphere | Information Management  >

OmniFind v8.4でDB2 V9.1のXMLタイプを検索する

開発元直送シリーズ

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません


レベル: 初級

守屋 豊, 情報マネージメント技術 / ソフトウェア開発研究所, IBM

2007年 1月 26日

IBM OmniFind Enterprise Edition v8.4 (以下、OmniFind)は、広範なデータソースを検索するためのIBM のエンタープライズ・サーチ・ソリューションです。検索対象となるデータソースにはIBMのリレーショナル・データベース製品であるDB2も含まれていますが、最新バージョンであるDB2 V9.1を検索するには設定ファイルを一部変更する必要があります。ここではその変更方法と、DB2 V9.1から新たに加わったXMLタイプのデータを検索するためのTipsをご紹介します。

DB2 V9.1用のDB2クローラー構成

環境の準備

DB2 V9.1を検索対象データソースにするにはDB2クローラーをDB2 V9.1にアクセスできるように構成する必要があります。構成は大きく分けて4つのステップが必要です。

必要ソフトウェアのインストール

まずはDB2 V9.1用のDB2 Clientをクローラー・ノードにインストールします。サーバーが既にインストールされていれば、必要なモジュールは既にインストールさていますので、改めてDB2 Clientをインストールする必要はありません。DB2 Runtime Clientはサポートされていませんのでご注意ください。

セットアップ・スクリプトの実行

次にセットアップ・スクリプトを実行します。

Windowsの場合
$ES_INSTALL_ROOT\bin\escrdb2.vbs
Linux, AIX, Solarisの場合
$ES_INSTALL_ROOT/bin/escrdb2.sh

になります。

V9.1以前のDB2製品がクローラー・ノードにインストールされている場合、以下の設定ファイルにV9.1以外のDB2のモジュールのクラスパスが含まれていないことを確認してください。

  • $ES_INSTALL_ROOT/configurations/interfaces/crawler_DB2_interface.ini
  • $ES_INSTALL_ROOT/configurations/interfaces/customcommunication_interface.ini
  • $ES_INSTALL_ROOT/configurations/interfaces/discovery__interface.ini

含まれている場合はV9.1のモジュールのみがクラスパスに含まれるようにテキスト・エディターで編集してください。またLinux、AIX、Solarisの場合は $ES_INSTALL_ROOT/escrset.sh で指定されているDB2のインストールパスがDB2 V9.1のインストール・ホーム以下にあるdb2profileを指定していることを確認してください。以前のバージョンのDB2のdb2profileを指定している場合は、DB2 V9.1のインストール・ホーム以下にあるdb2profileを指定するようにテキスト・エディターで編集してください。


コンフィグ・ファイルの編集

$ES_INSTALL_ROOT/configurations/discovery/discovery.properties をテキスト・エディターで開き、以下の1行を最後に追加します。
discovery.db2.checkremotetype=false

OmniFindシステムの再起動

最後に以下のコマンドを発行してOmniFindシステムの再起動を行います。

Windowsの場合
esadmin stop
stopccl.bat
startccl.bat
esadmin start


Linux/AIX/Soralisの場合
esadmin stop
stopccl.sh
startccl.sh
esadmin start


制限事項

制限事項として以下の点が挙げられます。

  1. DB2 V9.1をクロール対象とした際にイベント・パブリッシングを利用したクロールはサポートされません。
  2. 設定ファイルを変更することにより、SQL ServerをWebSphere Information Integratorのラッパー経由でクロールする際にSQL ServerのTimeStamp型を「更新を検出するフィールド」として指定することができなくなります。指定したい場合は discovery.propertie に追加した行を discovery.db2.checkremotetype=true とし、OmniFindシステムを再起動すれば再び指定することができます。このオプションはクローラーを作成するときのみに使われます。



上に戻る


XMLタイプの検索シナリオ

DB2 V9.1のXMLタイプを検索するには、XMLタイプのカラムを1つのフィールドとして検索する場合と、コンテンツとして検索する場合の2つのシナリオがあります。コンテンツとして指定した場合、XMLマッピングの設定を行うことでXMLエレメントをキーとして検索する、「フィールド検索」をXMLの中身に対して行うことができます。また、サンプルの検索アプリケーションを使えば検索したXMLを取り出すこともできます。ただしコンテンツとして指定できるカラムは1つのテーブルで1つだけですので、複数のXML型のカラムを検索対象にする場合には、コンテンツとして指定したカラム以外のカラムはフィールドとして指定します。

フィールドとして検索

フィールドとして検索する場合とコンテンツとして検索する場合の設定例を見ていきます。ここではDB2 V9.1にサンプルとして作られるSAMPLEデータベースのCUSTOMERの表を例として使います。表の定義は以下のようになっています。

db2 => describe table customer
Column nameType schema	Type name		Length	Scale	Nulls
------------------------------------------------------------------------
CID			SYSIBM		BIGINT	8	0 NO
INFO			SYSIBM		XML	0	0 YES
HISTORY			SYSIBM		XML	0	0 YES

また、INFOのカラムはXML型であり、以下のような顧客情報を持つXMLが含まれます。

db2 => select info from customer where cid=1002 

<customerinfo xmlns="http://posample.org" Cid="1002">
<name>Jim Noodle</name>
<addr country="Canada">
<street>25 EastCreek</street>
<city>Markham</city>
<prov-state>Ontario</prov-state>
<pcode-zip>N9C3T6</pcode-zip>
</addr>
<phone type="work">905-555-7258</phone>
</customerinfo>

このXMLをクロールして検索対象にします。

DB2クローラーの作成

DB2クローラーの作成自体は以前のバージョンのDB2をクロールする手順と同じです。

先ほどのSAMPLEデータベースのCUSTOMER表をクロール対象に指定してDB2クローラーを構成していきます。

DB2表のオプション設定

「DB2表のオプション」画面でXMLタイプのカラムがディスカバリーの機能によって表示されます。ここで左側のチェックボックスにチェックを入れることで、DB2クローラーはXMLタイプのカラムをフィールドとしてクロールします。前述の discovery.properties の編集が正しく行われていないと、この画面でエラーが表示されます。


fig1.「DB2表のオプション」設定画面 (000
fig1.「DB2表のオプション」設定画面 (000

検索結果

以下が検索した結果のイメージです。INFOカラムの中のXMLがinfoという1つのフィールドとして表示されます。


fig2.検索結果のイメージ (001
fig2.検索結果のイメージ (001

コンテンツとして検索

XMLタイプをコンテンツとしてクロール、検索した例を見ていきます。

フィールドの場合と同じく、先ほどのSAMPLEデータベースのCUSTOMER表をクロール対象に指定してDB2クローラーを構成します。

DB2表のオプション設定

「DB2表のオプション」画面では、INFOカラムの左側の「クロール」列のチェックボックスのチェックを外し、下部の「文書コンテンツの追加オプション」でINFOカラムを指定します。またMIMEタイプにはtext/xmlを指定します。この設定によってDB2クローラーはXML型のカラムの中身をコンテンツとしてパーサーに渡します。


fig3.DB2表のオプション設定 (002"
fig3.DB2表のオプション設定 (002

XMLマッピングの設定

引き続きXMLマッピングの設定を行います。「解析」のオプションから「XMLエレメントをフィールドにマップ」を選びます。


fig4.XMLマッピングの設定画面 (003
fig4.XMLマッピングの設定画面 (003

INFOカラムに保存されているXMLの各エレメントをフィールドとして、以下の図のように定義していきます。OmniFindではtitleという名前を持つフィールドは検索結果のタイトルとして使われます。そこで<name>エレメントをtitleという名前のフィールドにマッピングします。またフィールド検索と検索結果のオプションもオンにします。


fig5.XMLフィールド・マッピングの作成画面(004
fig5.XMLフィールド・マッピングの作成画面(004

設定が終了したら、クロールから索引化までを行います。

検索結果

以下のイメージはサンプル検索アプリケーション上での検索結果です。


fig6.検索結果のイメージ (005
fig6.検索結果のイメージ (005

フィールドとして検索した場合の検索結果と比較してみると、infoのかわりにXMLマッピングで設定したフィールド群が追加され、各エレメントの中身が表示されていることがわかります。この際、フィールド名をキーにしたフィールド検索を行うことができます。例えば、Markhamに住む顧客の情報を検索するには、ユーザーは”city:Markham”という検索語で、<city>エレメントにMarkhamを含むXMLを検索することができ、<name>などの他のエレメントにMarkhamを含むXMLは検索結果として返されません。また検索結果のタイトルには<name>エレメントの値が使用されています。加えてタイトルにリンクが張られ、クリックすることでINFOカラムに保存されているXMLをデータベースから取り出すことができます。


fig7.取り出されたXML (006
fig7.取り出されたXML (006



上に戻る


まとめ

OmniFind V8.4でDB2 V9.1をクロールするための設定と、XMLマッピングのTipsをご紹介しました。XMLマッピングによって、ユーザーが特定のエレメントを直接照会することができ、効果的な検索を行うことができます。DB2のXMLタイプを検索する際にご活用ください。



参考文献



著者について

守屋 豊はソフトウェア開発研究所のエンジニアで、IBM OmniFind Enterprise EditionとIBM OmniFind Yahoo! Editionの開発に携わっています。




記事の評価

全く役に立たなかった (1)
役に立たなかった (2)
どちらでもない (3)
役に立った (4)
とても役に立った (5)

お気軽にご意見・ご感想をお寄せください。



上に戻る


    日本IBMについて プライバシー お問い合わせ