Textアダプタが提供する機能の位置付けとTextアダプタの関連製品との関係を説明します。
Textアダプタは、Symfoware Serverの機能の1つです。Textアダプタは、以下の製品と関連をもちながら、アプリケーションプログラムからの全文検索を可能とします。Textアダプタでアプリケーションプログラムからの全文検索を行うには、Linkexpress Replication optionとAccela BizSearchが必要です。
Linkexpress Replication option
Accela BizSearchとAccela BizSearch開発キット
Textアダプタにより、以下の2つの形態の全文検索用のアプリケーションプログラムを作成することができます。
SQLインタフェースを使用したアプリケーションプログラム。SQLのCONTAINS関数を使用します。
Accela BizSearch開発キットが提供するアプリケーションプログラムインタフェース(C言語インタフェース)を使用したアプリケーションプログラム。
以下の図に、全体構成図を示します。
図1.3 全体構成図
Textアダプタは、以下の2つの機能を持ちます。
インデックス作成
データベースに格納している文書データを抽出し、Accela BizSearchの検索データベースを構成するインデックス(以降、インデックスと呼びます)を作成します。
全文検索
SQLのCONTAINS関数に指定した検索条件に該当するデータをデータベースから検索します。
Textアダプタのインデックス作成の機能は、Symfoware Serverのrdbtaisコマンドとして提供されます。
参照
rdbtaisコマンドについては“コマンドリファレンス”を参照してください。
利用者はTextアダプタのコマンドとAccela BizSearch開発キットが提供するインデックス管理コマンド(インデックス作成/更新コマンド-isuindexコマンド)を使用して、データベースに格納している文書データに対応するインデックスを、作成または更新することができます。
また、データベースに格納した文書データは、インデックスを作成したあと、挿入、削除または更新されます。このようなデータの差分(以降、差分データと呼びます)を蓄積する機能として、Symfoware Serverでは、Linkexpress Replication optionを提供しています。Textアダプタでは、効率的にインデックスを更新するために、Linkexpress Replication optionが提供する、差分データの蓄積機能を使用します。本機能により、インデックスの作成後の差分データだけを対象として、インデックスを更新できます。
Textアダプタは、データベースに格納したデータに対し、全文検索を行う機能として、CONTAINS関数を提供します。CONTAINS関数により、SQLを使用した全文検索のアプリケーションを作成することができます。CONTAINS関数に、Textアダプタによって作成したインデックスが付けられた列名と検索条件を指定することで、対象の列に格納したデータのうち、検索条件に該当するデータを特定することができます。CONTAINS関数は、以下に示すように、SQL文と組み合わせて使用します。ここでは、「概要」列に対して全文検索のためのインデックスが作成されているものとします。
SELECT 概要 FROM 書籍スキーマ.書籍表 WHERE CONTAINS(概要, ‘富士通|FUJITSU’ ) > 0 |
これは、「書籍スキーマ.書籍表」表の「概要」列に格納しているデータに対して、’富士通’または’FUJITSU’という検索キーワードを持つデータを抽出するSQLを表しています。CONTAINS関数に指定する検索条件は、Accela BizSearchで提供している検索条件式を指定します。また、CONTAINS関数の復帰値は、検索条件で指定した検索キーワードの出現率を表すランキングスコア値です。出現率が高ければより大きな値となり、一致しない場合は0を返します。
参照
Accela BizSearchの検索条件式とランキングスコア値については、“Accela BizSearch プログラマーズガイド”を参照してください。また、CONTAINS関数の詳細は、“2.7 検索アプリケーションの設計”を参照してください。
Textアダプタによる、Symfoware ServerとAccela BizSearchの連携について説明します。
利用者は、インデックス管理コマンド(isuindexコマンド)を実行することにより、目的のインデックスを作成または更新します。
インデックス管理コマンド(isuindexコマンド)の入力情報として、以下のファイルを使用します。
収集文書リストファイルとマップファイルは、Textアダプタのコマンドにより生成されます。
参照
各ファイルの構造、インデックス管理コマンドについては、“Accela BizSearch プログラマーズガイド”を参照してください。
以下の図に、Textアダプタによるインデックス作成・更新時のSymfoware ServerとAccela BizSearchの関係を示します。
図1.4 インデックス作成・更新時のAccela BizSearchとの連携
なお、インデックスの作成が完了した段階で、Accela BizSearch開発キットが提供するインタフェース(C言語)を使用して、全文検索のアプリケーションを作成することができます。
SQLのCONTAINS関数を使用して全文検索を実施する場合、Textアダプタは、Accela BizSearchと連携します。Textアダプタは、CONTAINS関数で指定した検索条件を解釈し、Accela BizSearchのインデックスを使用して、データベースに格納した文書データを特定し、アプリケーションに返却します。
以下の図に、Textアダプタによる全文検索実施時のSymfoware ServerとAccela BizSearchの関係を示します。
図1.5 全文検索時のAccela BizSearchとの連携
Linkexpress Replication optionとの関係
TextアダプタとLinkexpress Replication optionの関係について説明します。
Textアダプタは、インデックス作成後に、データベースが更新された場合、差分データからインデックスを更新することができます。更新には、Linkexpress Replication optionが提供する差分データの蓄積機能を使用します。同様に、対象のデータベースから文書データを抽出する場合も、Linkexpress Replication optionのデータの抽出機能を使用します。
Linkexpress Replication optionでは、抽出するデータを特定するために、抽出定義を定義します。抽出定義とは、抽出対象とする表と列を規定する機能です。Textアダプタでも、インデックスの対象とするデータを特定するために、Linkexpress Replication optionの抽出定義を使用します。利用者は、Textアダプタを使用してインデックスを作成する場合、抽出定義を作成する必要があります。抽出定義の設計については、“2.3 抽出定義の設計”を参照してください。
以下の図に、TextアダプタとLinkexpress Replication optionの関係を示します。
図1.6 Linkexpress Replication optionとの関係