目次


カンタン!DB2テクテク第1歩 拡張機能編

DB2 Net Search Extender-第1話

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

はじめに

今日、特にe-business やコンテンツ・マネージメントの分野において、多くのアプリケーションが全文検索機能を必要としています。本格的にビジネスを行っているWeb サイトで、利用者が関心の対象をすばやく見つけられるようにするテキスト検索機能を用意していないところはほとんどありません。

この稿では、DB2 Net Search Extenderによる全文検索機能について実例に基づいて見ていこうと思います。

DB2 Net Search Extenderとは

全文検索を高速に行う機能を提供をします。

  • 全文検索機能とは、検索対象の文書の「本文」そのものについて検索を行うことです。一般にこれを実現するために、ある検索方式を用いて、語句を抽出して索引を構築し、検索時には、その索引を対象に検索することにより、検索結果を返します。

DB2などのRDBの検索でも文字列に対してLIKE検索が出来ますがどう違うのでしょうか?

LIKE検索では、検索条件に一致した語句でなければ、ヒットしませんが、全文検索では、同義語・関連語を含めるシソーラス検索、語句が完全一致しなくてもヒットするあいまい検索が可能です。さらに、LIKE検索では、アルファベットの大文字、小文字や全角・半角の区別をしますが、全文検索の場合、基本的に区別はありません。

LIKE検索の例
LIKE検索の例
LIKE検索の例
全文検索の例
全文検索の例
全文検索の例

例で見てみましょう。ガーデニング関係の本を探したいと思った時に「ガーデニング」というキーワードで検索をしてみました。LIKE検索をした場合は、「ガーデニング」という語句が本当に入っている本しか検索結果として返ってきませんが、全文検索をした場合には園芸や色々な花の育て方、インテリアなどの意味的に同じ、または関連した本も検索結果として返ってきました。検索する側として既にタイトルを知っている本を探すのであればLIKE検索でも検索可能ですが、ただ漠然と書店の店頭と同じようにガーデニング関連の本を探したいなと思っている場合には全文検索というはたいへん便利ですね。

また、LIKE検索では、前方一致検索(つまり、テキスト・データの先頭文字が一致する検索)でないと、十分な性能が出ません。これに比べ全文検索では、あらかじめ索引を抽出しておくため、テキストの中間にある文字を検索する場合でも、高速に処理を行うことができます。

DB2 Net Search Extender V8.1の製品紹介

DB2 Net Search ExtenderV8.1

DB2 Net Search Extender (以下NSE) バージョン8は、DB2 Net Search Extender バージョン7.2 のメモリー内検索機能(in-memory search) と、DB2 Text Information Extender バージョン7.2の強力なテキスト検索機とを統合した、ひとつの使いやすいDB2オプション製品となります。これにより、高いパフォーマンスおよび拡張容易性を備えたテキスト検索を必要とするアプリケーションに対応します。

DB2 UDB、他データベース(DB2 UDB連合機能を使用)、または、ファイル・システム(DB2 DataLinks Managerを使用)に格納されたテキスト・ドキュメントに対し、SQL QueryまたはStored Procedureを使用した検索を行うことができます。

NSE は DB2 UDB コントロール・センターから管理することができ、テキスト索引の作成などの基本的なタスクが大幅に単純化できるようになりました。

パッケージ

NSE V8.1は以下のDB2 UDB製品に無償同梱されます(ユーザー数制限付き)。

  • DB2 Personal Edition V8.1
  • DB2 Workgroup Server Edition V8.1
  • DB2 Personal Developer's Edition V8.1
  • DB2 Universal Developer's Edition V8.1

以下のDB2 UDB製品の有料オプション製品として、NSE V8.1をご購入いただくことが可能です。

  • DB2 Workgroup Server Unlimited Edition V8.1
  • DB2 Enterprise Server Edition V8.1

システム要件

NSE V8.1の稼動には以下の環境が必要です。

  • Windows NT Version 4.0 Service Pack 5以降
  • Windows 2000, Windows XP
  • AIX Version 4.3 以降
  • Solaris Version 2.6 以降
  • DB2 Version 8.1

Net Search Extenderのテキスト索引

NSEで全文検索するためには、事前にテキスト文書に対してテキスト索引を作成します。

図の例では、書籍情報テーブルの文章列に書籍情報を格納し、その列に対してテキスト索引を作成しています。テキスト索引として作成可能なテキスト文書はフラットなテキスト文章だけでなく、HTML、XMLの構造化文書などさまざまなフォーマットにも対応しています。NSEではキャッシュテーブルとして、あらかじめ検索結果として表示したい列を指定してメモリー上に展開しておくことが可能です。

図の例では、検索結果の本のタイトル列をキャッシュテーブルとしてメモリー上に展開しています。テキスト索引によって検索された文章の検索結果として本のタイトルを返す際に、実テーブルを見にいかなくて済みますので高速に結果を返すことが可能です。

テキスト索引作成時にあらかじめ検索結果の表示順を指定しておくことが可能です。(最新刊を先に表示させるなど)

NSEでの検索方法

NSEには検索方法が3種類あります。

  • ストアードプロシージャー(NSE V7.2と同等)
  • SQLスカラー関数(TIE V7.2と同等)
  • SQL表値関数(新API)

それぞれの検索方法によってメモリーの使い方や制約などが変わってきますので、次回以降特徴を説明していきます。

NSEの提供する検索機能

NSEは以下の検索機能を提供します。

  • ブール演算(AND, OR, NOT)
  • 同じ文または同じ段落内でのワードに対する近接検索
  • 検索ごとに似たスペルをもつワードを検索するファジー検索
  • ワード全体および単一文字に対するワイルドカード検索
  • フリー・テキスト検索
  • シソーラス・サポート
  • 文書内のセクションへの検索の限定- 構造化文書でのタグ指定による検索
  • 数値属性のサポート
  • 多数の同時ユーザーによる大量テキスト文書に対する高速検索 などなど

最後に

DB2 Net Search Extenderについての初回となる今回は、DB2 Net Search Extenderの概要を中心にお話して来ました。次回以降は、DB2 Net Search Extenderのそれぞれの検索方法についての特徴と実際の使い方を見て行きたいと思います。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=321239
ArticleTitle=カンタン!DB2テクテク第1歩 拡張機能編: DB2 Net Search Extender-第1話
publish-date=11302005