フルテキスト検索の概要

更新 : 2006 年 7 月 17 日

Microsoft SQL Server 2005 のテーブルにフルテキスト インデックス作成機能をセットアップするには、次の 2 つの手順を実行します。

  1. フルテキスト インデックスを格納するフルテキスト カタログを作成する。
  2. フルテキスト インデックスを作成する。
ms142497.note(ja-jp,SQL.90).gifメモ :
SQL Server のデータベースは、SQL Server Management Studio を使用して作成される場合を除いて、既定でフルテキストが有効になっています。Management Studio を使用してデータベースを作成するときに、データベースのフルテキスト検索を有効にするには、「データベースを作成する方法 (SQL Server Management Studio)」を参照してください。既存のデータベースのフルテキスト検索を有効にするには、「データベースでフルテキスト インデックスを有効にする方法 (SQL Server Management Studio)」を参照してください。
ms142497.note(ja-jp,SQL.90).gifメモ :
インデックス付きビューにフルテキスト インデックスを作成することもできます。インデックス付きビューの詳細については、「ビューの種類」を参照してください。

AdventureWorks のフルテキスト検索のセットアップ

次の例では、AdventureWorksDocument テーブルに関するフルテキスト インデックスを作成します。

AdvWksDocFTCat という名前のフルテキスト カタログを作成するには、CREATE FULLTEXT CATALOG ステートメントを使用します。

CREATE FULLTEXT CATALOG AdvWksDocFTCat

このステートメントによって、セットアップ時に指定した既定のディレクトリ内にフルテキスト カタログが作成されます。AdvWksDocFTCat というフォルダが既定のディレクトリ内にあります。

ms142497.note(ja-jp,SQL.90).gifメモ :
ディレクトリの場所を指定するには、IN PATH 句を使用します。詳細については、「CREATE FULLTEXT CATALOG (Transact-SQL)」を参照してください。

また、Management Studio を使用してフルテキスト カタログを作成することもできます。これを行うには、オブジェクト エクスプローラを使用します。フルテキスト カタログを作成するデータベースの下で、[ストレージ] フォルダを展開し、[フル テキスト カタログ] フォルダを右クリックして、[新しいフルテキスト カタログ] をクリックします。詳細については、「[新しいフルテキスト カタログ] ([全般] ページ)」を参照してください。

フルテキスト カタログ ID は、00005 から始まり、新しいカタログが作成されるたびに 1 ずつ増加します。

可能であれば、フルテキスト カタログは専用の物理ドライブ (必要に応じて複数ドライブ) 上に作成することを推奨します。フルテキスト インデックスを作成する処理で非常に I/O が集中する場合 (高い頻度で SQL Server からデータを読み取り、ファイル システムにインデックスを書き込むため)、I/O サブシステムがボトルネックとならないように考慮する必要があります。

フルテキスト カタログを作成したら、次にフルテキスト インデックスを作成します。ただし、Document テーブルにフルテキスト インデックスを作成する前に、テーブルに一意の単一列で NULL 値にならないインデックスを含めるかどうかを決定する必要があります。Microsoft Full-text Engine for SQL Server (MSFTESQL) サービスは、この一意のインデックスを使用してテーブルの各行を一意の圧縮可能なキーにマップします。

一意の単一列で NULL 値にならないインデックスを作成するには、次のステートメントを実行します。

CREATE UNIQUE INDEX ui_ukDoc ON Production.Document(DocumentID)
ms142497.note(ja-jp,SQL.90).gifメモ :
Document テーブルには既にこのような列があります。上記のコードは、例を挙げる目的で示しています。

一意のキーが作成できたら、Document テーブルにフルテキスト インデックスを作成できます。

CREATE FULLTEXT INDEX ON Production.Document
(
    Document                         --Full-text index column name 
        TYPE COLUMN FileExtension    --Name of column that contains file type information
        Language 0X0                 --0X0 is LCID for neutral language
)
KEY INDEX ui_ukDoc ON AdvWksDocFTCat --Unique index
WITH CHANGE_TRACKING AUTO            --Population type
GO

また、フルテキスト インデックス作成ウィザードを使用して、フルテキスト インデックスを作成することもできます。詳細については、「フルテキスト インデックス作成ウィザードを起動する方法 (SQL Server Management Studio)」を参照してください。

列の言語を選択する際の考慮点の詳細については、「フルテキスト検索の言語選択時の注意」を参照してください。

作成状態を監視するには、FULLTEXTCATALOGPROPERTY 関数または OBJECTPROPERTYEX 関数を使用します。カタログ作成状態を検出するには、次のステートメントを実行します。

SELECT FULLTEXTCATALOGPROPERTY('AdvWksDocFTCat', 'Populatestatus')

通常、カタログ全体の作成を実行している間は、結果として 1 が返されます。

参照

その他の技術情報

FULLTEXTCATALOGPROPERTY (Transact-SQL)
OBJECTPROPERTYEX (Transact-SQL)
CREATE FULLTEXT CATALOG (Transact-SQL)
CREATE FULLTEXT INDEX (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

新しい内容 :
  • Management Studio を使用してデータベースを作成するとき、既定ではデータベースのフルテキスト インデックスが有効にならないことを示す注意点を追加しました。