レベル: 初級 守屋 豊, 情報マネージメント技術 / ソフトウェア開発研究所, 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
制限事項
制限事項として以下の点が挙げられます。
- DB2 V9.1をクロール対象とした際にイベント・パブリッシングを利用したクロールはサポートされません。
- 設定ファイルを変更することにより、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
検索結果
以下が検索した結果のイメージです。INFOカラムの中のXMLがinfoという1つのフィールドとして表示されます。
fig2.検索結果のイメージ (001
コンテンツとして検索
XMLタイプをコンテンツとしてクロール、検索した例を見ていきます。
フィールドの場合と同じく、先ほどのSAMPLEデータベースのCUSTOMER表をクロール対象に指定してDB2クローラーを構成します。
DB2表のオプション設定
「DB2表のオプション」画面では、INFOカラムの左側の「クロール」列のチェックボックスのチェックを外し、下部の「文書コンテンツの追加オプション」でINFOカラムを指定します。またMIMEタイプにはtext/xmlを指定します。この設定によってDB2クローラーはXML型のカラムの中身をコンテンツとしてパーサーに渡します。
fig3.DB2表のオプション設定 (002"
XMLマッピングの設定
引き続きXMLマッピングの設定を行います。「解析」のオプションから「XMLエレメントをフィールドにマップ」を選びます。
fig4.XMLマッピングの設定画面 (003
INFOカラムに保存されているXMLの各エレメントをフィールドとして、以下の図のように定義していきます。OmniFindではtitleという名前を持つフィールドは検索結果のタイトルとして使われます。そこで<name>エレメントをtitleという名前のフィールドにマッピングします。またフィールド検索と検索結果のオプションもオンにします。
fig5.XMLフィールド・マッピングの作成画面(004
設定が終了したら、クロールから索引化までを行います。
検索結果
以下のイメージはサンプル検索アプリケーション上での検索結果です。
fig6.検索結果のイメージ (005
フィールドとして検索した場合の検索結果と比較してみると、infoのかわりにXMLマッピングで設定したフィールド群が追加され、各エレメントの中身が表示されていることがわかります。この際、フィールド名をキーにしたフィールド検索を行うことができます。例えば、Markhamに住む顧客の情報を検索するには、ユーザーは”city:Markham”という検索語で、<city>エレメントにMarkhamを含むXMLを検索することができ、<name>などの他のエレメントにMarkhamを含むXMLは検索結果として返されません。また検索結果のタイトルには<name>エレメントの値が使用されています。加えてタイトルにリンクが張られ、クリックすることでINFOカラムに保存されているXMLをデータベースから取り出すことができます。
fig7.取り出されたXML (006
まとめ
OmniFind V8.4でDB2 V9.1をクロールするための設定と、XMLマッピングのTipsをご紹介しました。XMLマッピングによって、ユーザーが特定のエレメントを直接照会することができ、効果的な検索を行うことができます。DB2のXMLタイプを検索する際にご活用ください。
参考文献
著者について  | |  | 守屋 豊はソフトウェア開発研究所のエンジニアで、IBM OmniFind Enterprise EditionとIBM OmniFind Yahoo! Editionの開発に携わっています。 |
記事の評価
|