現在の実装形態では、フルテキスト インデックスが標準の SQL Server の標準のインデックスとは変わっています。このため、管理に伴うタスクを簡単に説明しておく必要があります。主な違いを次の表に示します。
フルテキスト管理は、いくつかのレベルで行われます。
サーバー全体のプロパティ(Search サービスに必要なものなど)を設定し、インデックスのカタログ作成を初期化して準備することができます。
データベースでは、フルテキスト検索の使用を有効にする必要があります。1 つ以上のフルテキストカタログのメタデータは、有効にされたデータベースで作成および削除することができます。
フルテキスト カタログは、管理機能を使用して作成する必要があります。
テーブルは、フルテキスト検索をサポートする状態で登録する必要があります。この時点で、そのテーブルのフルテキスト インデックスについてメタデータが作成されます。登録したテーブルを次回のフルテキスト カタログ作成時に使用するには、カタログ作成前にテーブルをアクティブにする必要があります。
フルテキスト検索が利用できる列は、非アクティブな登録テーブルに対して追加または削除することができます。
以上のすべてのレベルで、プロパティ、状態、容量(たとえば、フルテキスト カタログのサイズ)に関する情報を取得するための機能を使用できます。これらの機能は GUI と ストアド プロシージャの両方の形を取り、ほとんどすべてのタスクをどちらかの方法で行うことができます。この章ではストアド プロシージャに的を絞っているので、GUI を使用した例は少ししか取り上げてありません。「ストアド プロシージャ」という用語は、管理者が SQL Server と通信していることを示すのに使用しています。実際には、ストアド プロシージャとスカラー値によるプロパティ関数との組み合わせが用いられます。
ここでは、「ストアド プロシージャ モード」で処理を行っている管理者が pubs データベースの選択したテーブルと列に対するフルテキスト検索のセットアップに利用できるステップを簡単に説明します。このシナリオは利用可能な機能をすべて網羅しているわけではなく、プロシージャの使用方法についての理解を助けるのに十分な程度にとどめてあります。
SQL Server Enterprise Manager でフルテキスト検索のアイコンの形と色を見て、Search サービスが実行されていることを確認します。
SQL Server Enterprise Manager でフルテキスト検索オブジェクトのコンテキスト メニューを使用します。
SQL Server のほかからであれば、サービス コントロール マネージャを使用します(サービス コントロール マネージャでは、このサービスは Microsoft Search サービスと呼ばれています)。
MS-DOS のコマンド プロンプトで net start mssearch と入力します。
SQL Server サービス マネージャからサービスを開始します。
フルテキスト サービスは、開始時と同じ方法で停止できます。
次のステートメントを実行して、pubs データベースでフルテキスト処理が有効になっているかどうかを確認します。
次の Transact-SQL ステートメントを実行して、pubs データベースに接続します。
次のストアド プロシージャを実行して、pubs データベースでフルテキスト処理を有効にします。
次のストアド プロシージャを実行して、デフォルトのディレクトリを選択して、PubsCatalog という名前のフルテキスト カタログを作成します。
フルテキスト処理用に、authors、jobs、pub_info、titles の各テーブルを登録します。このようにして登録するテーブルでは、各行ごとに一意な値を有する列(フルテキスト 一意キー列)が必要です。これらのテーブルには主キー列が 1 列ずつあるため、この条件は満たされています。
authors UPKCL_auidind
インデックス名がわかったので、各テーブルに対して sp_fulltext_table ストアド プロシージャを 1 回ずつ実行してテーブルを登録することができます。
新しく登録したテーブルそれぞれで、各列に対して sp_fulltext_column ストアド プロシージャを 1 回ずつ実行し、登録する列の名前を指定します。
注 ここでは、説明の関係で titles テーブルに対して title 列の代わりに誤って type 列を登録しています。
フルテキスト インデックスを作成できるようにする前に、この機能をアクティブにしておく必要があります。各テーブルに対して sp_fulltext_table ストアド プロシージャを 1 回ずつ実行して、これらのテーブルのフルテキスト インデックスを作成する機能をアクティブにしてください。
sp_fulltext_catalog ストアド プロシージャを実行して、PubsCatalog フルテキスト カタログの全カタログの作成を開始します。
次のステートメントを実行して、PubsCatalog フルテキスト カタログの作成の進行状況を確認します。
たとえば、次のような Transact-SQL クエリを実行して、管理が正しく実行されたことを確認します。
次のような SQL クエリを実行します。
title 列がフルテキスト クエリ用に登録されていないため、このクエリではエラーが発生します。
次のステートメントを実行して、エラーを検査します。title 列が titles テーブルのフルテキスト インデックスに含まれる場合は 1 が返され、それ以外の場合に 0 が返されます。
次のストアド プロシージャを実行して、titles テーブルのフルテキスト処理にかかわっている列を一覧表示します。
次のストアド プロシージャを実行して title 列をフルテキスト インデックスに追加して type 列を追削除できるように titles テーブルを非アクティブにします。
titles テーブルのフルテキスト インデックスのメタデータに対して title 列を追加し、type 列を削除します。各列に対して sp_fulltext_column ストアド プロシージャ を 1 回ずつ実行します。
次のストアド プロシージャを使用して、titles テーブルを再びアクティブにします。
次のストアド プロシージャを実行して、PubsCatalog フルテキスト カタログの追加作成を開始します。
timestamp 列のあるテーブルでは、最後の作成以降に更新または挿入された行のデータ。
timestamp 列のないテーブル、最後の作成以降にフルテキスト処理のために有効化されたテーブル、あるいは最後の作成以降になんらかの方法で変更されたスキーマを持つテーブルでは、テーブルのすべての行のデータ。
PubsCatalog の再作成が終了した後に、ステップ 13 からクエリを再発行します。今度はエラーは発生しません。
グラフィカル ユーザー インターフェイス(GUI)はシンプルで簡単に使えます。ここでは、SQL Server Enterprise Manager のほかの GUI について簡単に説明します。
コンソール(左)ペインには、2 つのフルテキスト オブジェクトがあります。
[フルテキスト検索]
[フルテキスト カタログ]
[フルテキスト インデックス作成]を選択すると、フルテキスト インデックス作成ウィザードが起動されます。
[テーブルのフルテキスト インデックス]メニューには、フルテキスト インデックス作成ウィザードを起動するためのサブメニューがあります。これらのサブメニューでは、フルテキスト インデックスの内容を定義または修正したり、テーブルからフルテキスト インデックス作成を削除したりすることができます。
テーブルのプロパティで[フルテキスト インデックス作成]タブを選択すると、プロパティ ページが表示されます。一般的なページを次に示します。
このメニューを表示させるには、次の手順に従ってください。
フルテキスト カタログの一覧を表示させるには、コンソール ペイン(「A. コンソール ペイン」の図)で[フルテキストカタログ]オブジェクトを選択します。
[fcp.northwind.ft.ctlg]をマウスの右ボタンでクリックし、メニューを表示させます。
このプロパティ ページを表示させるには、前述の E. と同じ手順でメニューから[プロパティ]を選択します。
このプロパティ ページを表示させるには、前述の E. と同じ手順でメニューから[スケジュール]を選択します。
このウィザードは、さまざまな場所から呼び出すことができます。たとえば、[ツール]メニュー(前述の B. の手順)から[フルテキスト インデックス作成]オプションを選択するか、コンテキスト メニュー(前述の C. の手順)から[テーブルの フルテキスト インデックス]のいずれかのオプションを選択する方法などがあります。このウィザードは、特定のテーブルに対するフルテキスト インデックスの作成と維持に必要なあらゆる情報を収集します。