フルテキストインデックス
全文検索などに利用する。
今回のシステムで全文検索したいと要望があるので調べた。

データベースのフルテキストインデックスを有効化

[codesyntax lang=”sql” lines=”yes”]
USE データベース名;
GO
EXEC sp_fulltext_database ‘enable’;
GO
[/codesyntax]

「sp_fulltext_database」は非推奨らしい。DDLでやれと書いてる。

フルテキストカタログの作成

[codesyntax lang=”sql” lines=”yes”]
CREATE FULLTEXT CATALOG カタログ名
ON FILEGROUP ファイルグループ名;
[/codesyntax]

FILEGROUPを指定しない場合はデフォルトのファイルグループにカタログが作られる。

フルテキストインデックスの作成

[codesyntax lang=”sql” lines=”yes”]
CREATE FULLTEXT INDEX
ON テーブル名(インデックスを作成する列名)
KEY INDEX テーブルのプライマリーキー(ユニーク)
ON カタログ名;
[/codesyntax]

これで準備完了。

あとは、検索SQLを書いて実行するだけ。

[codesyntax lang=”sql” lines=”yes”]
SELECT * FROM テーブル名
WHERE CONTAINS(インデックスを作成した列名, ‘ “検索キーワード” OR “検索キーワード” ‘);
[/codesyntax]

CONTAINS」を使ってSQL文を書く。

検索キーワードの前後に半角アスタリスクをいれることでLIKE的に含む文字列が返される。

フルテキストインデックス対象の列の中に、複数キーワードを保存する場合は半角スペース区切りで保存する
でないと正しい結果が返されなかった。
その2に複数キーワードについてもうちょい詳しく記述。