...

DB2 の全文検索製品 まえがき

by user

on
Category: Documents
34

views

Report

Comments

Transcript

DB2 の全文検索製品 まえがき
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
DB2の全文検索製品
技術白書
Albert Maier
Hans-Joachim Novak
まえがき
DB2 UDB V7.2には、テキスト・エクステンダー、ネット・サーチ・エクステンダー、および
Text 情報 Extenderという3種類の全文検索製品があります。この白書では、各エクステンダーの
アーキテクチャー、ならびにそれに伴う長所と短所について解説します。また、どのような場
合にどのエクステンダーを使用すべきかについてのガイドライン、製品戦略、および代替アプ
ローチについても説明します。
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
謝辞
貴重な検討に何度も協力してくれたエクステンダー開発チームに感謝いたします。特に、
Annette OpalkaとMichael Haideの両氏には、この白書の草稿をレビューし、多くの重要な加筆修
正点を指摘して頂きました。
Page 2 of 28
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
1. はじめに
今日、特にe-businessやコンテンツ・マネージメントの分野において、多くのアプリケーション
が全文検索機能を必要としています。本格的にビジネスを行っているWebサイトで、利用者が
関心の対象をすばやく見つけられるようにするテキスト検索機能を用意していないところはほ
とんどありません。一般に、テキスト・データ自体(たとえば商品説明)、あるいは少なくとも、
書籍の著者や要約などのテキスト文書に関するメタデータはRDBMSに格納されています。たと
えば、WebSphere Commerce SuiteアプリケーションのPRODUCT表に格納された数千件の商品説
明やBOOK表に格納された数百万件の書籍の要約を対象に全文検索を行うことができます。あ
るいは、ある価格以下の製品のみを検索したり、近くの書店で購入できる書籍を検索したりす
る場合のように、データベースに格納された他のデータに関する条件と組み合わせて全文検索
を行うこともできます。この白書では、DB2の全文検索製品であるテキスト・エクステンダー、
ネット・サーチ・エクステンダー、およびテキスト情報エクステンダーがこうした用途にどの
ように役に立つのか、またどのような場合にどのエクステンダーを使用すべきかについて説明
します。
第2章では、エクステンダーのアーキテクチャーについて解説し、DB2をベースに構築されたテ
キスト検索ソリューションと比較した場合、およびSQLの「like」関数を使用する場合と比較し
た場合の各アーキテクチャー上の利点を説明します。また、アーキテクチャーに起因する各ソ
リューションの長所と短所についても解説します。第3章では、アプリケーションに最適なエク
ステンダーを選ぶ際に役立つ情報として、製品の歴史と戦略について説明し、どのような場合
にどのエクステンダーを使用すべきかについて解説します。
以下に要約を示します。「標準的な」アプリケーションにはすべてテキスト情報エクステンダ
ーを使用します。このエクステンダーは、DB2との統合という点で最も優れており、設計の柔
軟性の点でも申し分ありません。ただし、最初のリリースのテキスト情報エクステンダーには
いくつかの制限があります。具体的には、一部のプラットフォームに対応していない点と、表
では単一列を主キーとする必要がある点が挙げられます。また、DB2 EEEでは利用できません。
ネット・サーチ・エクステンダーは、ハイエンドのe-businessシナリオに対処するためのもので、
非常に優れたパフォーマンスとスケーラビリティーを備えていますが、これに合わせてアプリ
ケーションを設計できなければなりません。このエクステンダーは、照会がテキスト検索のみ
である(パラメトリック・データに関する条件と組み合わせない)場合、検索結果が数件でよ
い場合、およびデータをメイン・メモリーに格納する余裕がある場合に最適です。これら2つの
エクステンダーのどちらのほうが適しているのかについてあらかじめ判断するのが難しいこと
もありますが、もちろん同じ表に対して同時に両方を使用することも可能です。いずれにせよ、
現在の製品計画では、これら2つのエクステンダーの機能は1つの製品に統合される予定です。
Page 3 of 28
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
テキスト・エクステンダーは、全文検索に対して高度な言語サポートが必要な場合に使用しま
す。テキスト・エクステンダーで使用するテキスト検索エンジンは、テキスト情報エクステン
ダーでもネット・サーチ・エクステンダーでも利用できない言語をサポートしています。特に
一部のヨーロッパ言語の場合に言えることですが、高品質の検索結果を保証するには言語サポ
ートが重要です。
現在の計画では、次のバージョンのテキスト情報エクステンダーには、テキスト・エクステン
ダーを完全に置き換えることができるように機能と対応プラットフォームが追加される予定で
す。
第4章では、検索機能に焦点を当てながら、テキスト・エクステンダーの機能についてもう少し
詳しく説明し、さらにパフォーマンスに関するいくつかのヒントも示します。同様に、第5章で
はネット・サーチ・エクステンダー、第6章ではテキスト情報エクステンダーを専ら扱います。
巻末には、これらの製品に関する追加情報を入手したい場合に役立つ連絡先およびリンクの一
覧が記載されています。
2. アーキテクチャー
この章では、テキスト検索とDB2の表に格納されたパラメトリック・データを対象とする検索
を結合する、以下の5種類のアーキテクチャーを比較します。
y
y
DB2とDB2外部テキスト検索エンジンをベースに構築されたソリューション
y
y
y
テキスト・エクステンダー
SQLの「like」関数
ネット・サーチ・エクステンダー
テキスト情報エクステンダー
アプローチの比較基準は以下のとおりです。
y
パフォーマンスおよびスケーラビリティー特性
y
機能と検索結果の品質
y
拡張性や統合APIといったその他の側面
上記の基準の重要性は、たとえば以下のようにアプリケーションのシナリオによって異なりま
す。
y
1日当たり数千万ヒットのアクセスがあり、数百万のテキスト検索可能オブジェクトがデー
タベースに格納されているWebサイトでは、たとえば1万種類の商品の説明と価格を対象と
Page 4 of 28
2001年
年11月
月6日
日
の全文検索製品
DB2の全文検索製品
する検索しか行わない小規模のWebサイトと比べて、パフォーマンスやスケーラビリティー
の問題による影響が大きくなります。
y
特許調査の場合、多少の応答時間の遅れは問題となりませんが、すべての関連文書を漏れな
く検索できることが極めて重要になります。それとは対照的に、特定の話題に関する新聞記
事を探そうとしている場合は、検索の品質はそれほど重要ではないかもしれません。
y
商品データベースに対する複合検索を実現しようとする場合、テキスト検索とパラメトリッ
ク検索が同じアクセス制御メカニズムを使用しているかどうかについては気にしないかもし
れません。実際にその必要はまったくありませんが、一部の情報を機密扱いにする場合や、
特定の情報の検索料金を利用者に課金する場合は、単一アクセス制御または統合アクセス制
御の概念を取り入れることが非常に重要になる可能性があります。
2.1 DB2とDB2外部テキスト検索エンジンをベースに構築された
ソリューション
以下の図は、テキスト・データとパラメトリック・データを対象とする複合検索を実現するた
めに、DB2とテキスト検索エンジンの上にレイヤーを実装するシステムのアーキテクチャーを
示しています。ここには検索部のみ、つまり、DB2に格納されたパラメトリック・データに対
する検索と、テキスト検索エンジンによって管理されるテキスト索引に対する検索が含まれる
照会を評価する際にどのコンポーネントが関係するかが示してあります。このようなアプロー
チは現在、IBMのContent ManagerやEnterprise Information Portalなどの製品に実装されています。
アプリケーション・
サーバー
専用API
インターネット/
イントラネット
複合照会ハンドラー
DB2クライアント
DB2
サーバー
エンド・
ユーザー
TSEクライアント
テキスト検索
エンジン
(TSE)
テキスト
索引
ユーザー表
Page 5 of 28
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
アプリケーション・サーバー(通常は中間層に置かれます)は、複合照会を処理するコンポー
ネントの上に構築されます。このコンポーネントは、検索時に以下の処理を実行します。
y
DB2に対して照会を発行し、結果をアプリケーション・サーバーに戻す。
y
テキスト検索エンジンに対して照会を発行し、結果をアプリケーション・サーバーに戻す。
y
結果を結合する。
このようなアプローチの利点と目的は、各自のテキスト検索機能要件を満たした任意の情報検
索システムを使用できることにあります。
このソリューションの主な欠点は、テキスト検索結果とDB2検索結果を複合照会ハンドラーに
移動し、そこでデータを結合するといった処理をなくすことができないため、パフォーマンス
とスケーラビリティーが制限されることです。たとえば、エンド・ユーザーが、100ドル未満
(DB2に対する照会)で、かつ書籍のテーマが「リレーショナル・データベース」テクノロジ
ー(TSEに対する照会)である10冊の書籍を調べたかったとします。その場合、10万件のDB2照
会結果と1,000件のテキスト照会結果を複合照会ハンドラーに移動する必要があり、さらに10冊
の書籍を返すためにこれらのセットを結合しなければなりません。
このタイプのアプリケーションでは、アプリケーションへの結果の移動をチャンク単位で行う
ことによって問題を解決しようとすることもありますが、あまり効果はありません。なぜなら、
たとえば最初のテキスト検索結果のチャンクに価格条件にマッチする結果が含まれていない場
合や、最初のDB2検索結果のチャンクにリレーショナル・データベースに関する書籍が含まれ
ていない場合など、最初のチャンクに必要な結果が含まれていない可能性があるからです。
このような複合照会ハンドラーの上にアプリケーションを構築しようとした場合、その他にも
以下のような問題があります。
y
一般に、開発者は、従来どおりSQL APIとTSEのAPIを扱うか、あるいは「統合API」があっ
たとしても、SQLの機能やSQLの広範なプログラミング環境サポートを利用できない。
y
一般に統合アクセス制御を利用することができない。
y
通常、DB2の内容とテキスト索引との同期が問題となる。
y
通常、(前述の問題により)開発コストや維持管理コストが高くなる。
Page 6 of 28
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
2.2 SQLの「like」関数
DB2をはじめとするすべてのリレーショナル・データベース・システムは、たとえば以下に示
すように、特定のパターンを含むストリングを検索する組み込み述部関数「like」を備えていま
す。
select ISBN, PRICE
from BOOKS
where ABSTRACT LIKE '%mouse%'
これは「マウス」に関する書籍を検索するためのもので、要約のどこかにストリング「mouse」
を含むすべての書籍を検索します。DB2は、列「ABSTRACT」にある既存のBツリー索引を利
用してこの列のLIKE述部を評価しようとしますが、この場合はストリングの先頭にワイルドカ
ードがあるため、そうすることはできません。一般に、Bツリーはテキスト検索条件の評価に適
した索引構造ではありません。この場合、DB2は、要約にストリング「mouse」を含む書籍を見
つけるために、実行時におそらく数百万件の書籍要約を走査しなければならないことになりま
す。
DB2のLIKE述部関数によって返されるテキスト検索結果は、テキスト検索の品質に関して現在
のユーザーの期待にそいません。上記の照会では、ユーザーの観点から見て適切な書籍がすべ
て見つかるわけではありません。たとえば、単語「Mouse」を含む要約は見つかりません
(LIKE述部関数は大文字小文字を区別するため)。「mouse」の代わりに単語「mice」を使用
すると、どちらも見つからないことになります(言語サポートがないため)。逆に、単語
「mouse-grey」を含む要約は、関心の対象ではないにもかかわらず条件を満たすことになります
(LIKE述部関数はワード境界を無視するため)。あらゆる種類の齧歯類動物に関心があること
を簡単に式で表す手段はなく(シソーラスがサポートされないため)、また「mouse」が
「house」と同じ文中に含まれることを式で表すこともできません(近接検索もブール検索もサ
ポートされないため)。
したがって、テキスト検索機能を本格的に実現しようとする場合、パフォーマンスの点でも品
質の点でも現在のテキスト検索の標準を満たしていないことから、DB2のLIKE述部関数を使用
することはできません。
Page 7 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
2.3 テキスト・エクステンダーのアーキテクチャー
以下の図は、たとえばリレーショナル・データベース・システムに関する20ドル未満のすべて
の書籍を検索するための照会など、テキスト・エクステンダー(TE)関数を含むSQL照会の実
行に関係するコンポーネントを示しています。
インターネット/
イントラネット
アプリケーション・
サーバー
エンド・
ユーザー
標準
SQL API
DB2クライアント
DB2
サーバー
TE検索関数
テキスト検索
エンジン
テキスト
索引
ユーザー表
TEメタデータ
アプリケーションは、DB2サーバーに対してSQL照会を発行します。DB2サーバーは、内部でテ
キスト・エクステンダー関数を呼び出し、その関数がテキスト検索エンジンを使用して、どの
書籍がリレーショナル・データベースに関するものなのかを判定します。使用する結合アルゴ
リズム(ハッシュ、ソート・マージ、ネストされたループ結合など)の決定、および照会の2つ
の部分(つまり、価格条件とテキスト検索条件)を評価する順序の決定は、DB2オプティマイ
ザーによって行われます。データをアプリケーション・サーバーに移動する必要はありません。
アプリケーション開発者は、SQL照会を発行する方法さえ知っていればよいことになります。
したがって、DB2の上にテキスト検索ソリューションを実装するアプローチと比べて、テキス
ト・エクステンダーアプローチには以下の利点があります。
y
高いパフォーマンス:
y 途中の結果データをアプリケーション・サーバーに移動する必要がありません。
Page 8 of 28
年11月
月6日
日
2001年
DB2の全文検索製品
の全文検索製品
y 結果の結合が、このジョブを非常に効率的に実行するDB2によって行われます。
y
完全な統合ソリューション:
y アプリケーション開発者は、広く知られている1つのAPI、つまりSQLを使用するだけ
でよいことになります。このAPIは、様々なプログラミング言語やプログラミング環境
で利用できます。
y テキスト索引とDB2の内容との同期は、テキスト・エクステンダーによって処理さ
れます。
y このエクステンダーは、DB2のアクセス制御概念に完全に統合されています。
y
拡張性:
y たとえば結果の順序付けやグループ化など、他の標準または拡張DB2検索機能とテキス
ト検索の併用や、空間データやイメージ・データを対象とする検索とテキスト検索と
の併用が容易です。
y ユーザー定義タイプやユーザー定義関数/メソッドのようなDB2のオブジェクト指向機
能を使用して、SQLに独自の拡張機能を追加することも可能です。
1995年にテキスト・エクステンダーの最初のバージョンが公開されたとき、これらの利点は他
に例を見ないもので、同等の製品は市場にありませんでした。そのうちに、すべての主要デー
タベース・ベンダーがこの分野の製品を開発しました。今日の見地からすると、テキスト・エ
クステンダーには以下の欠点があります。
y
基礎となるテキスト検索エンジンが、今日の巨大なデータ・セットを処理できるようには構
築されていません。
y
テキスト・エクステンダーには、スカラー関数と表関数という2種類の検索スタイルがあ
ります。照会で追加される述部によっては、一方がもう一方より桁違いにパフォーマンスが
優れている可能性があります。残念なことに、どちらが実行速度が速いかを照会ごとに判断
する手段はありません(そもそもユーザーが判断すべき事柄ではありません)。一般に、テ
キスト検索のみの照会に適した選択肢であるという理由から、表関数アプローチを使用しま
す。ただし、表関数には一定の制限があり(たとえば、ビューに対して機能しない)、複合
照会に関して言えば、スカラー関数のほうがはるかにパフォーマンスが優れている可能性が
あります。
y
DB2オプティマイザーには、テキスト検索結果と標準のDB2述部関数の結果を最も効率的に
結合できるアルゴリズムを選択するのに適した基準がありません。テキスト検索を実行する
コストやテキスト検索結果のサイズは、テキスト検索条件自体に大きく左右されますが、
DB2オプティマイザーはテキスト検索条件を考慮しません。
Page 9 of 28
年11月
月6日
日
2001年
y
DB2の全文検索製品
の全文検索製品
テキスト・エクステンダー関数は、ジョブを実行するために、テキスト索引に関する特
定の情報を必要とします。この情報はいわゆるハンドル列に保持されますが、この保持が更
新のパフォーマンスに影響します。
y
テキスト索引の管理は、標準のDB2索引の管理とは異なります。テキスト・エクステンダ
ーを使用するには、あらかじめテキスト・エクステンダーインスタンス(DB2インスタ
ンスとは異なる)を作成し、さらにデータベースのテキスト検索を有効にする必要がありま
す。このため、エキスパートでないユーザーがテキスト・エクステンダーを使用するのは
困難です。
前述の理由により、次に解説するネット・サーチ・エクステンダーおよびテキスト情報エクス
テンダーのアーキテクチャーが開発されました。これらは表裏一体であり、最終的には1つのオ
ファリングに統合される予定です。
2.4 ネット・サーチ・エクステンダーのアーキテクチャー
一見したところ、ネット・サーチ・エクステンダー(NSE)のアーキテクチャー(下図を参照)
は、テキスト・エクステンダーのアーキテクチャーとよく似ていますが、大きな違いがありま
す。テキスト・エクステンダーは、SQLに完全に統合されたテキスト検索関数を備えています。
これらの関数は、標準SQL関数「length」や「concat」を使用するのと同様に、標準SQLステー
トメント内のどこにでも使用することが可能です。対照的に、ネット・サーチ・エクステンダ
ーが備えているのは一連のストアード・プロシージャーです。そのため、DB2インターフェー
スとDB2通信インフラストラクチャーを使用すればアプリケーション・サーバーとDB2サーバ
ーの境界を越えることは可能ですが、標準SQL照会ほどの完全な機能は備えていません(以下
の解説と比較)。
Page 10 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
インターネット/
イントラネット
アプリケーション・
サーバー
エンド・
ユーザー
ストアード・
プロシージャー
呼び出し
DB2クライアント
DB2
サーバー
テキスト検索
エンジン関数
NSEストアード・プロシージャー
テキスト
索引
メモリー内の
データベース表
ユーザー表
NSEメタデータ
ネット・サーチ・エクステンダーは、メモリー内の表、プリソートされた索引、および非常に
高速なテキスト検索エンジンにより、応答時間最適化のシナリオ(つまり、膨大になる可能性
があるヒット件数の中から最初のn件のヒットを最短の時間で得ることがアプリケーションの主
な目的である場合。一般にWebアプリケーションのシナリオがこれに該当します)において、
抜群のパフォーマンスとスケーラビリティーを発揮します。
NSEでは、「テキスト索引作成」時に、表またはビュー(あるいはそれらの一部)をメイン・
メモリーに格納するように指定することができます。さらに、いずれかの列に基づいてテキス
ト索引をソートするように指定することも可能です。たとえば、表「books」に列「abstracts」
と書籍の価格が含まれているとすると、「abstracts」列のテキスト索引を書籍の価格に基づいて
プリソートすることができます。
NSEストアード・プロシージャーの呼び出しを除けば、実行時のDB2の関与を完全に避けるこ
とができます。「リレーショナル・データベースに関するすべての書籍の著者と価格を価格で
順序付けして取得する」といった照会は、次のように処理されます。NSEは、テキスト索引に
対してテキスト照会「relational databases」を発行します。テキスト検索エンジンは順序を保持
し、価格が安い書籍から順番に返します。その後、NSEは、メイン・メモリー内の表のルック
アップを実行して、対応する著者および価格の値を取得します。
Page 11 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
NSEの主な欠点は、その機能がストアード・プロシージャーのみによって提供されることです。
したがって、一般にテキスト検索と、DB2に格納されたパラメトリック・データを対象とする
検索またはマルチメディア・データ(イメージなど)を対象とする検索のいずれかとの結合が
必要なアプリケーションには適していません。NSEは、場合によってはこの制限を克服するの
に役立つ以下の2つの機能を備えています。
y
NSE管理コンポーネントを使用すれば、ユーザーはメモリー内の表の数値列にNSE固有の索
引を作成することができます。検索時には、これらの列に対する単純な条件をテキスト検索
条件に追加することができ、NSEはこれらの索引を利用して照会全体を評価します。
y
テキスト検索照会に加えて、NSEストアード・プロシージャーへの入力パラメーターとして
SQL照会を指定することができます。この機能は、テキスト検索結果のサイズがごく小規模
であることを保証できる場合にのみ使用できます。
以下にいくつかのガイドラインを示します。
y
NSEは、共用リソース要件が非常に高く、データベースのサイズが原因でそれが問題となる
可能性があります。さらに、利用可能なハードウェアやオペレーティング・システムによっ
て共用リソースのサイズが制限される可能性があります。
y
NSEは、スループットを最適化する必要があるアプリケーション(つまり、数件の「最もマ
ッチする」結果または何らかのソートされた順序で最初の数件の結果のみを必要とするアプ
リケーションとは対照的に、完全な結果セットを主な目的とするアプリケーション)には適
していません。
y
基本表ではなく、ビューを処理する必要があるアプリケーションの場合、それらのビューの
実体化が可能かどうかを確認する必要があります(NSEでは、ビューは、メイン・メモリー
内に実体化してからでないと処理できません)。リソース制約によって実体化が不可能な場
合もあります(たとえ基本表が、たとえば1万行といった小規模のものでも、それらの基本
表を結合したビューは優に数百万行に及ぶ可能性があります)。また、ビューの実体化を不
可能にするSQL表現(レジスターなど)がビュー定義に含まれる可能性もあります。
2.5 テキスト情報エクステンダーのアーキテクチャー
以下の図は、たとえばリレーショナル・データベース・システムに関する20ドル未満のすべて
の書籍を検索するための照会など、テキスト情報エクステンダー(TIE)関数を含むSQL照会の
実行に関係するコンポーネントを示しています。
Page 12 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
アプリケーション・
サーバー
インターネット/
イントラネット
エンド・
ユーザー
標準
SQL API
DB2クライアント
DB2
サーバー
エンジンに
よるTIE
検索関数の
サポート
TIE検索関数
テキスト検索
エンジン関数
テキスト
索引
TIE meta data
ユーザー表
このアーキテクチャーとテキスト・エクステンダーのアーキテクチャーの大きな違いは、TIEの
テキスト検索関数を含む照会のリライトと最適化をDB2エンジンが最初からサポートしている
点です。要するに、テキスト・エクステンダーと比べて、リライターの拡張によってユーザビ
リティーが向上し、オプティマイザーの拡張によってパフォーマンスが向上しています。テキ
スト・エクステンダーのアーキテクチャーの解説で挙げた他のアーキテクチャー上の利点はす
べてTIEにも同様に当てはまるため、ここでは繰り返しません。
TIEの最初のリリースの主な問題は、以下のとおりです。
y
現在の実装では、単一列を主キーとする表の場合にのみテキスト索引の作成が可能です。ま
た、主キーのデータ・タイプに関する制限もあります。
y
テキスト検索関数は、DB2 UDFインターフェースを使用して実装されています。UDFイン
ターフェースは、NSEが使用するストアード・プロシージャー・インターフェースと比べて、
パフォーマンスやスケーラビリティーが劣るという欠点があります。なぜなら、UDFインフ
ラストラクチャーによって各トランザクションごとにテキスト検索ライブラリーのロードと
アンロードが行われるからです。結果セットが少ない単純な照会の場合、ライブラリーのロ
ード回数は、検索自体の必要回数の数倍必要になります。
Page 13 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
3. エクステンダーの選択
3.1 製品情報
エクステンダーの歴史と戦略
テキスト・エクステンダー、ネット・サーチ・エクステンダー、およびテキスト情報エクステ
ンダーの製品戦略と位置付けを理解するには、製品の歴史を知るのが有効です。
y
テキスト・エクステンダーは、最も古いDB2エクステンダーで、1994∼1995年に開発され
ました。当時、SQLへのテキスト検索関数のシームレスな統合は他に例を見ないもので、同
等の製品は市場にありませんでした。そのうちに、すべての主要データベース・ベンダーが
この分野の製品を開発するようになりました。
y
ネット・サーチ・エクステンダーは、特定のお客様向けのソリューションとして、テキ
スト・エクステンダーではパフォーマンスやスケーラビリティーの要件に対処できなか
った非常に大規模なWebサイトのニーズに対処することを目的に出発しました(1999∼2000
年頃に開発)。ネット・サーチ・エクステンダーはストアード・プロシージャーをベー
スにしているため、対処できるのは特定のアプリケーション・シナリオと照会タイプのみで
す(セクション2.4と比較)。したがって、テキスト・エクステンダーを完全に置き換え
るのには適していません。
y
テキスト情報エクステンダー(2000∼2001年に開発)は、テキスト・エクステンダー
の後継とされているものです。テキスト・エクステンダーが現在サポートしているすべ
てのプラットフォームと機能をテキスト情報エクステンダーがカバーするようになり次
第、テキスト・エクステンダーは提供中止となります。市場の需要により、TIEの最初の
バージョンは、テキスト・エクステンダーを完全に置き換えられるようになる前にリリ
ースせざるを得ませんでした。
現在の計画では、ネット・サーチ・エクステンダーとテキスト情報エクステンダーを1つの製品
に統合する予定です。
テキスト検索エンジンの歴史と戦略
エクステンダーが提供するテキスト検索機能は、使用するテキスト検索エンジンの機能に完全
に依存します。したがって、IBMのテキスト検索エンジン戦略を理解し、どのテキスト検索エ
ンジンがどのエクステンダーで使用されるかについて知ることも重要です。
Page 14 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
ネット・サーチ・エクステンダーは、「GTR」テキスト検索エンジンを使用します。一方、テ
キスト・エクステンダーはテキスト検索エンジン「TSE」を使用します。一言で言えば、GTR
はパフォーマンスの点では優れていますが、TSEほどの機能性がなく、特に言語サポートと
XMLのような構造化文書のサポートが欠けています。おもしろいことに、GTRはTSE内部で
DBCS言語とファジー検索をサポートするために使用されています。TSEのアーキテクチャー上
の問題があるため、TSE内部で使用した場合、GTRのパフォーマンスは完全には発揮されませ
ん。
IBMでは現在、GTRの優れたパフォーマンスとTSEの優れた機能性を併せ持つ新しいテキスト検
索エンジンの開発を進めています。このエンジンは、今後登場するすべてのIBMテキスト検索
製品で使用される予定です。
この新しいテキスト検索エンジンの最初のバージョンは、テキスト情報エクステンダーに統合
されています。そのカーネルはGTRをベースにしていますが、構造化文書サポートとフリー・
テキスト検索サポートが追加されています。以後のいずれかの段階で言語サポートが追加され
る予定です。
対応プラットフォームと価格
y
ネット ・サーチ・エクステンダー は現在、AIX、Sun Solaris、HP UNIX、Linux/Intel、
Linux/390、Windows NT(Enterprise Edition)、およびz/OSで使用可能です。
y
ネット・サーチ・エクステンダーは有料です。
y
テキスト ・エクステンダー は現在、AIX、Sun Solaris、HP UNIX、Windows NT、OS/2
(Enterprise Edition)、およびz/OSで使用可能で、AIX、Sun Solaris、およびWindows NT版
のDB2 Extended Enterprise Editionをサポートしています。
y
テキスト・エクステンダーは無料です(別のCDにパッケージされています)。
y
テキスト情報エクステンダーは現在、AIX、Sun Solaris、およびWindows NTで使用可能で
す(DB2 V7.2 Enterprise Editionのみ)。
y
テキスト情報エクステンダーは無料です(別のCDにパッケージされています)。
Page 15 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
以下の表に、各テキスト検索エクステンダーの主な機能を要約します。
TE V7.2
NSE V7.2
TIE V7.2
言語索引付けおよび検索
あり
なし
なし
DB2データ・リンク機能によって参照されるデータの
索引付け
制限付き
なし
あり
フルテキスト索引の増分更新
あり
あり
あり
LOB列に格納されたデータの索引付け
あり
あり
あり
UDT列に格納されたデータの索引付け
あり
なし
あり
クライアント管理
あり
なし
あり
XMLサポート(XMLパーサー)
あり
なし
あり
標準HTMLサポート(HTMLパーサー)
あり
なし
あり
構造化データ(ユーザー定義タグ)を対象とする検索
あり
あり
あり
日付/時刻/数値を対象とする属性検索
あり
あり
なし
DBCSサポート
あり
あり
あり
SQLとの検索の統合
あり
なし
あり
ランキング
あり
あり
あり
ユーザー定義プリソート結果リスト
なし
あり
なし
検索結果リスト上のカーソル
なし
あり
なし
シソーラス・サポート
あり
なし
あり
フリー・テキスト検索
あり
なし
あり
近接検索(同じ段落内)
あり
なし
あり
AIX、SUN、NTでのDB2 EEのサポート
あり
あり
あり
HPでのDB2 EEのサポート
あり
あり
なし
AIX、SUN、NTでのDB2 EEEのサポート
あり
なし
なし
z/OS
あり
あり
なし
機能
索引付け
検索
対応プラットフォーム
3.2 ガイドライン
以下のリストではまず3項目のハイレベルのガイドラインを挙げてから、さらに詳しく掘り下げ
ていきます。ガイドラインのいくつかは互いに矛盾するかもしれません。要件に優先順位を付
けてもその矛盾を解決できない場合は、2種類のエクステンダーをインストールし、それらを異
なった照会シナリオに使用することを検討してみてください。
Page 16 of 28
年11月
月6日
日
2001年
y
の全文検索製品
DB2の全文検索製品
すべての「標準的な」アプリケーションにはテキスト情報エクステンダーを使用します。
このエクステンダーは、DB2との統合という点で最も優れており、設計の柔軟性とパフォー
マンスの点でも申し分ありません。
y
ネット・サーチ・エクステンダーは、ハイエンドのe-businessシナリオに対処するための
もので、非常に優れたパフォーマンスとスケーラビリティーを備えていますが、ネット・
サーチ・エクステンダーに合わせてアプリケーションを設計できなければなりません。
ネット・サーチ・エクステンダーは、応答時間の最適化を主な目的とする(つまり、す
べてのヒットを高速にするのではなく、最初のヒットを高速にする)場合で、メイン・メモ
リーにデータを格納する余裕がある場合に使用します。詳細については、セクション2.4を
参照してください。
y
テキスト・エクステンダーは、言語処理が最も重要である場合に使用します。ただし、
これらの拡張機能を使用するとパフォーマンスの点で不利になることに注意してください。
y
複数列が一主キーとなる表の場合には、テキスト情報エクステンダーは使用できません。
y
テキスト・データを対象とする検索を標準のパラメトリック・データを対象とする検索や空
間検索のような他のタイプの検索と結合する必要がある場合には、テキスト情報エクステ
ンダーを使用する必要があります。
y
アプリケーションが非常に多数の同時テキスト検索照会を生成する場合には、ネット・サ
ーチ・エクステンダーを選んでください。
y
(数件の「最もマッチする」結果または何らかのソートされた順序で最初の数件の結果のみ
を必要とするアプリケーションとは対照的に)大きな「完全」結果セットを受け取る必要が
あるアプリケーションでは、ネット・サーチ・エクステンダーを使用してはなりません。
y
構造化文書(XML、HTML、または独自のフォーマット)をサポートするテキスト検索が
必要な場合には、テキスト情報エクステンダーを使用します(ネット・サーチ・エク
ステンダー自体はXML文書をサポートしていませんが、DB2にデータをロードする際に
XML文書やPDF文書を変換できる「Net Search Loader」サービス・オファリングがあります)。
y
近接検索(単語「b」と同じ段落内にある単語「a」)、フリー・テキスト検索、またはシソ
ーラス・サポートが必要な場合には、ネット・サーチ・エクステンダーは使用できませ
ん。
y
再呼び出しに関する検索結果の品質がアプリケーションにとって極めて重要な場合や、言語
的に見てより複雑な言語(ドイツ語など)で文書が記述されている場合には、テキスト・
エクステンダーを検討する必要があるかもしれません。
Page 17 of 28
年11月
月6日
日
2001年
y
の全文検索製品
DB2の全文検索製品
アプリケーションでギガバイト範囲のテキスト索引を必要とする場合には、テキスト・エ
クステンダーを使用してはなりません。
4. テキスト・エクステンダー
4.1 概要
テキスト・エクステンダーは、SQL照会に全文検索機能を追加したものです。このエクステン
ダーを使用すれば、DB2ユーザーやアプリケーション・プログラマーは、DB2表またはDB2デー
タ・リンク・マネージャーによって管理されるファイルに格納されたテキスト文書全体を検索
することができます。主な機能は以下のとおりです。
y
SQLに完全に統合されたテキスト検索関数
y
英語、ドイツ語、フランス語、日本語をはじめとする22カ国語の索引付けと検索。基本の索
引付けと検索は37カ国語をサポート
y
ブール検索(単語および句のand、or、not)
y
同じ段落または文に含まれる単語の検索
y
フリー・テキスト検索(検索引き数をフリー・テキストとして指定)
y
ファジー検索(たとえば、「Shakepeere」で検索して「Shakespeare」を見つける)
y
シソーラス・サポート(指定した関係に基づく検索語の拡張)
y
構造化文書(ユーザー定義、またはHTMLやXML)のセクション内の検索
y
構造化文書内の日付、時刻、および数値属性を対象とする検索
y
検索結果のランキング
y
フルテキスト索引の増分更新と非同期更新
y
文字データ・タイプ、ユーザー定義タイプ、ラージ・オブジェクト、およびDB2データ・リ
ンク・マネージャーによって管理される外部ファイルを対象とする索引付けおよび検索のサ
ポート
4.2 例
Page 18 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
以下に、DB2 テキスト・エクステンダーの簡単な使用例を示します。以下の3つのステップがあ
ります。
1. いくつかのサンプル・データを含む小さなデータベース表を作成する。
2. サンプル・データのフルテキスト索引を作成する。
3. フルテキスト索引を使用して検索を行う。
「sample」など、既存のデータベースを使用して、オペレーティング・システムのコマンド行
でサンプル・コマンドを発行します。
テーブルを作成し、データをロードする
まず、いくつかのDB2コマンドを発行してサンプル表を作成し、いくつかのサンプル・データ
をロードします。
db2 "CREATE TABLE books (author VARCHAR(30),
story LONG VARCHAR
year INTEGER);"
このコマンドにより、物語の著者と物語自体を格納する列を含む表「books」が作成されます。
db2 "INSERT INTO books
VALUES ('John', 'A man was running down the street.', 2001)"
db2 "INSERT INTO books
VALUES ('Mike', 'The cat hunts some mice.', 2000)"
db2 "INSERT INTO books
VALUES ('Peter','Some men were standing beside the table.',1999)"
これらのコマンドにより、表にデータがロードされます。
テキスト索引を作成する
テキスト索引を作成するには、DB2コマンドと同様に、オペレーティング・システムのコマン
ド行でDB2 テキスト・エクステンダーコマンドを発行します。DB2 テキスト・エクステンダー
コマンドを発行する前に、DB2 テキスト・エクステンダーにデータベース名を知らせるための
環境変数を設定します。
export DB2DBDFT=sample
Page 19 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
このコマンドにより、デフォルトのデータベース環境変数が設定されます。Microsoft Windows
オペレーティング・システム環境では、「export」コマンドではなく「set」コマンドを使用する
必要があります。
db2tx "ENABLE DATABASE"
このコマンドにより、DB2 テキスト・エクステンダーでデータベースを使用する準備が整いま
す。このステップは、各データベースごとに1回だけ実行する必要があり、データベースを作成
した直後に実行することができます。
db2tx "ENABLE TEXT COLUMN books story HANDLE story_handle
INDEXTYPE LINGUISTIC"
このコマンドにより、列「story」のフルテキスト索引が作成されます。索引付けの間、索引付
けされた文書に関する情報を含む列「story_handle」が表に追加されます。テキスト索引を検索
する際には、このハンドル列の名前が使用されます。
テキスト索引を対象に検索を行う
DB2 テキスト・エクステンダーの検索機能はDB2関数によって提供されるため、任意のSQL照
会で使用することができます。
db2 "
SELECT author, story FROM books
WHERE
DB2TX.CONTAINS (story_handle, '\"mouse\"') = 1
AND year >= 2000"
(テキスト検索句を囲む二重引用符の前に付ける必要があるエスケープ文字は、使用するオペ
レ ーテ ィン グ ・シ ステ ム・ シ ェル によ っ て異 なり ます 。 )こ の照 会 によ り、 ハ ンド ル列
「story_handle」によって決定されるフルテキスト索引を対象に単語「mouse」が検索されます。
見つかった書籍はすべて、2000年より新しいものであるはずです。以下の結果表が返されます。
AUTHOR
STORY
Mike
The cat hunts some mice.
「mouse」の検索で単語「mice」が見つかったのは、索引付けコマンドで言語索引タイプを先に
選択したためです。言語検索機能は、DB2 テキスト・エクステンダーの主な利点の1つです。
その他の関数としては、見つかった文書が検索引き数によってどの程度正確に表現されている
か を 示 す 標 識 を 返 す RANK や 、 結 果 の 文 書 内 に 見 つ か っ た 照 会 語 の マ ッ チ 回 数 を 返 す
NO_OF_MATCHESがあります。
Page 20 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
4.3 パフォーマンスに関するヒント
y
スカラー関数と表関数: テキスト・エクステンダーには表関数SEARCH_RESULTがあ
りますが、これは機能上、スカラー関数CONTAINS、RANK、およびNO_OF_MATCHESと
同等です。照会がテキスト検索のみを実行するものである(パラメトリック・データに関す
る条件がない)場合、この表関数を使用するとパフォーマンスが向上します。また、テキス
ト検索条件よりも多くの結果がパラメトリック検索条件によって返されることが期待される
場合や、期待される結果のサイズが不確かな場合にも表関数を使用する必要があります。
y
テキスト検索のみの照会の場合には、テキスト検索条件に「RESULT LIMIT」制限を指定す
ることもできます。テキスト照会のパフォーマンスを左右するのは、テキスト索引のサイズ
ではなく、主に返される結果の件数であるため、これによってパフォーマンスが大幅に向上
します。
ただし、複合照会や「ORDER BY」句を含む照会で結果サイズ制限を使用する場合は、注
意が必要です。たとえば、リレーショナル・データベースに関する書籍で、特定の価格より
安いすべての書籍を探そうとしている場合に、テキスト検索の結果を100冊に制限すると、
最初の100冊の書籍がいずれも指定した価格より安くないといったことが起こる可能性があ
ります。次の数百冊の書籍の中には、指定した価格より安いものがあるはずですが、それに
もかかわらず、空の検索結果が返されることになります。
y
NGRAM索引を使用すると、索引付けおよびテキスト検索を最も効率よく行うことができま
す。
5. ネット・サーチ・エクステンダー
5.1 概要
ネット・サーチ・エクステンダーを使用すれば、インターネット上のテキストの高速でスケー
ラブルな全文検索をIBM DB2 Universal Databaseで行うことが可能になります。ネット・サーチ・
エクステンダーは、メモリー内のデータベース・テクノロジーとテキスト検索を結合したもの
です。主な機能は以下のとおりです。
y
ストアード・プロシージャーによって呼び出されるテキスト検索機能
y
1秒以下の検索応答時間
y
1秒当たり1,000件の照会まで検索パフォーマンスが低下しない
Page 21 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
y
1時間当たり約1GBの索引付け速度
y
テラバイト単位までのスケーラビリティー
y
英語、スペイン語、フランス語、日本語、中国語をはじめとする37カ国語の基本検索サポー
ト
y
ブール検索(単語および句のand、or、not)
y
ファジー検索(たとえば、「Shakepeere」で検索して「Shakespeare」を見つける)
y
構造化文書(ユーザー定義タグ)のセクション内の検索
y
メモリー内の表に格納された数値属性を対象とする検索
y
検索結果のランキング
y
ラージ・オブジェクト(LOB)および文字データ・タイプを対象とする索引付けと検索のサ
ポート
ネット・サーチ・エクステンダーのユーザー・マニュアルには検索パフォーマンスの最適化に
関するセクションがあるため、この章ではパフォーマンスに関するヒントは示しません。
5.2 例
以下に、DB2 ネット・サーチ・エクステンダーの簡単な使用例を示します。以下の3つのステッ
プがあります。
1. データベース表を作成し、いくつかのサンプル・データをロードする。
2. サンプル・データのフルテキスト索引を作成する。
3. フルテキスト索引を使用して検索を行う。
「sample」など、既存のデータベースを使用して、オペレーティング・システムのコマンド行
でサンプル・コマンドを発行します。
テーブルを作成し、データをロードする
まず、いくつかのDB2コマンドを発行してサンプル表を作成し、いくつかのサンプル・データ
をロードします。
db2 "CREATE TABLE products (
article_no INTEGER NOT NULL,
Page 22 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
name
VARCHAR(100),
description LONG VARCHAR,
price
INTEGER,
PRIMARY KEY (article_no)
)"
このコマンドにより、商品番号、商品名、説明テキスト、および価格を格納するためのフィー
ルドを含む表「products」が作成されます。ネット・サーチ・エクステンダーでは、いずれかの
1つの列に一次キーが必要です。
db2 "INSERT INTO products
VALUES (1, 'Lamp', 'Table lamp, blue, 60W', 3200)"
db2 "INSERT INTO products
VALUES (2, 'Cup', 'Large blue coffee cup', 400)"
db2 "INSERT INTO products
VALUES (3, 'Ballpoint pen', 'Yellow plastic ballpoint pen including black refill', 95)"
これらのコマンドにより、表にデータがロードされます。
テキスト索引を作成する
テキスト索引を作成するには、DB2コマンドと同様に、オペレーティング・システムのコマン
ド行でDB2 ネット・サーチ・エクステンダーコマンドを発行します。
db2nx "ENABLE DATABASE sample"
このコマンドにより、DB2 ネット・サーチ・エクステンダーでデータベースを使用する準備が
整います。このステップは、各データベースごとに1回だけ実行する必要があり、データベース
を作成した直後に実行することができます。
db2nx "ENABLE TEXT COLUMN products description
INDEX prod_dsc
USING article_no
OPTIMIZE ON (description, price)
ORDER BY price ASC
DATABASE sample"
このコマンドにより、列「description」のフルテキスト索引「prod_dsc」が作成されます。
OPTIMIZE ONオプションを使用すると、「description」および「price」列の内容がメモリー内
Page 23 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
に保持され、データベース表からの検索よりはるかに速く検索することができます。「ORDER
BY」オプションを使用すると、メモリー内の表が価格を基準にプリソートされます。
テキスト索引を対象に検索を行う
DB2 ネット・サーチ・エクステンダーの検索機能はDB2ストアード・プロシージャーによって
提供されるため、Java、DB2 CLI、およびNet.Dataアプリケーションから容易に呼び出すことが
できます。
db2 "call textSearch ( ?, '\"blue\"', 0, 0, 0, 100, 'PROD_DSC',
'$DB2NX_INSTOWNERHOMEDIR/db2nx/indices', null, null, 0, ?)"
このコマンドにより、フルテキスト索引「prod_dsc」を対象に、単語「blue」を含む商品説明が
検索されます。この場合、索引付けコマンドのOPTIMIZE ONおよびORDER BY文節によって指
定されたとおり、メモリー内の表から検索結果が得られます(すべての入力および出力パラメ
ーターの意味については、マニュアルをご覧ください)。
以下の結果セットが返されます。
ARTICLE_NO
DESCRIPTION
PRICE
2
Large blue coffee cup
400
1
Table lamp, blue, 60W
3200
6. テキスト情報エクステンダー
6.1 概要
テキスト情報エクステンダー(TIE)は、SQL照会に全文検索機能を追加したものです。このエ
クステンダーを使用すれば、DB2ユーザーやアプリケーション・プログラマーは、DB2表また
はDB2データ・リンク・マネージャーによって管理されるファイルに格納されたテキスト文書
全体を検索することができます。主な機能は以下のとおりです。
y
SQLに完全に統合されたテキスト検索関数
y
ブール検索(単語および句のand、or、not)
y
同じ段落または文に含まれる単語の検索
y
フリー・テキスト検索(検索引き数をフリー・テキストとして指定)
Page 24 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
y
ファジー検索(たとえば、「Shakepeere」で検索して「Shakespeare」を見つける)
y
シソーラス・サポート(指定した関係に基づく検索語の拡張)
y
構造化文書(ユーザー定義、またはHTMLやXML)のセクション内の検索
y
検索結果のランキング
y
フルテキスト索引の増分更新と非同期更新
y
文字データ・タイプ、ユーザー定義タイプ、ラージ・オブジェクト、およびDB2データ・リ
ンク・マネージャーによって管理される任意のデータ・リンクを対象とする索引付けおよび
検索のサポート
y
管理コマンドがDB2管理コマンドとよく似ているため、データベース管理者にとって使いや
すい
6.2 例
以下に、DB2 テキスト情報エクステンダーの簡単な使用例を示します。以下の3つのステップが
あります。
1. いくつかのサンプル・データを含む小さなデータベース表を作成する。
2. サンプル・データのフルテキスト索引を作成する。
3. フルテキスト索引を使用して検索を行う。
「sample」など、既存のデータベースを使用して、オペレーティング・システムのコマンド行
でサンプル・コマンドを発行します。ここでは、データベース名を「sample」と仮定します。
テーブルを作成し、データをロードする
まず、いくつかのDB2コマンドを発行してサンプル表を作成し、いくつかのサンプル・データ
をロードします。
db2 "CREATE TABLE books (
author VARCHAR(30),
story LONG VARCHAR,
year INTEGER);"
このコマンドにより、物語の著者と物語自体を格納する列を含む表「books」が作成されます。
Page 25 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
db2 "INSERT INTO books
VALUES ('John', 'A man was running down the street.', 2001)"
db2 "INSERT INTO books
VALUES ('Mike', 'The cat hunts some mice.'), 2000"
db2 "INSERT INTO books
VALUES ('Peter', 'Some men were standing beside the table.',1999)"
これらのコマンドにより、表にデータがロードされます。
テキスト索引を作成する
テキスト索引を作成するには、DB2コマンドと同様に、オペレーティング・システムのコマン
ド行でDB2 TIEコマンドを発行します。
db2text "ENABLE DATABASE FOR TEXT CONNECT TO sample"
このコマンドにより、DB2 TIEでデータベースを使用する準備が整います。このステップは、各
データベースごとに1回だけ実行する必要があり、データベースを作成した直後に実行すること
ができます。
db2text "CREATE INDEX myTextIndex ON books (story) FOR TEXT
CONNECT TO sample"
このコマンドにより、列「story」のフルテキスト索引が作成されます。
テキスト索引を対象に検索を行う
DB2 TIEの検索機能は、DB2関数によって提供されるため、任意のSQL照会で使用することがで
きます。
db2 "SELECT author, story FROM books
WHERE CONTAINS (story, '\"cat\"') = 1 AND YEAR >= 2000"
(テキスト検索句を囲む二重引用符の前に付ける必要があるエスケープ文字は、使用するオペ
レーティング・システム・シェルによって異なります。)この照会により、「cats」に関する
2000年より新しいすべての書籍が検索されます。以下の結果表が返されます。
AUTHOR
STORY
Mike
The cat hunts some mice.
Page 26 of 28
年11月
月6日
日
2001年
の全文検索製品
DB2の全文検索製品
サポートされるその他の関数としては、見つかった文書が検索引き数によってどの程度正確に
表現されているかを示す標識を返すSCOREや、結果の文書内に見つかった照会語のマッチ回数
を返すNUMBEROFMATCHESがあります。
6.3 パフォーマンスに関するヒント
y
主キーのデータ・タイプを自由に選択できる場合には、INTやBIGINTのような「short」タ
イプを使用します。タイプ「VARCHAR」は、特定の最適化機能が有効にならないため使用
してはなりません。その代わりに「VARCHAR FOR BIT DATA」の使用も推奨されます。
y
データの大規模な挿入または削除を行った後は、忘れずに「db2 runstats」を実行してくださ
い。実行しないと、オプティマイザーが期待される結果のサイズについて誤った判断をして
しまい、テキスト検索のみの照会でも、まったく不適切な方法を選択する可能性があります。
y
照会のSELECT部分にSCORE関数が含まれる場合には、同じテキスト列と同じテキスト検索
条件を持つCONTAINS述部関数をWHERE部分に追加してください。リライターは、2つの
条件をマージし、テキスト検索条件を満たす文書のみについてSCORE値を計算します(他
のすべての文書では、いずれにしても値は0になります)。
y
テキスト検索のみの照会の場合、テキスト検索条件に「RESULT LIMIT」制限を指定するこ
ともできます。テキスト照会のパフォーマンスは主に返される結果の件数に左右されるため、
これによってパフォーマンスが大幅に向上します。
ただし、複合照会や「ORDER BY」句を含む照会で結果サイズ制限を使用する場合には、
注意が必要です。たとえば、リレーショナル・データベースに関する書籍で、特定の価格よ
り安いすべての書籍を探そうとしている場合に、テキスト検索の結果を100冊に制限すると、
最初の100冊の書籍がいずれも指定した価格より安くないといったことが起こる可能性があ
ります。次の数百冊の書籍の中には、指定した価格より安いものがあるはずですが、誤った
結果として空の検索結果が返されることになります。
y
テキスト索引作成中にコミット・カウント値を使用すると、索引付け時間がかなり長くなる
可能性があります。
7. その他の情報の入手先
リンク
y
DB2 テキスト・エクステンダーの詳細については、次のページをご覧ください。
http://www.ibm.com/software/data/db2/extenders/text.htm
Page 27 of 28
年11月
月6日
日
2001年
y
の全文検索製品
DB2の全文検索製品
次のページからDB2 テキスト・エクステンダーの資料をダウンロードできます。
http://www.ibm.com/software/data/db2/extenders/library.html
y
次のDB2 ネット・サーチ・エクステンダー製品ホームページをご覧ください。
http://www.ibm.com/software/data/db2/extenders/netsearch/index.html
Webサイトは再編成されることが多いため、上記のリンクは変更される可能性があります。
「page not found」エラーが表示された場合には、まずエクステンダーのルート・サイトにアク
セスし、そこからリンクをたどってみてください。エクステンダーのルート・サイトは次のと
おりです。
http://www.ibm.com/software/data/db2/extenders
連絡先
ヨーロッパ、中東、およびアフリカ担当:
y
Jürgen Metter
Content Management Service and Support
IBM Deutschland Entwicklung GmbH
Schönaicher Str. 220
71032 Böblingen
Germany
Phone: +49-7031-16-4254
Fax: +49-7031-16-4891
y
Juergen Schimpf
DB2 UDB Extender Development
IBM Deutschland Entwicklung GmbH
Schönaicher Str. 220
71032 Böblingen
Germany
Phone: +49-7031-16-4583
Fax: +49-7031-16-4891
米国担当:
y
Stewart Tate
Content Management Internet Services
[email protected]
Phone: (408) 463-3175
Page 28 of 28
Fly UP