フルテキストインデックス
全文検索などに利用する。
今回のシステムで全文検索したいと要望があるので調べた。
データベースのフルテキストインデックスを有効化
USE データベース名;
GO
EXEC sp_fulltext_database 'enable';
GO
「sp_fulltext_database」は非推奨らしい。DDLでやれと書いてる。
フルテキストカタログの作成
CREATE FULLTEXT CATALOG カタログ名
ON FILEGROUP ファイルグループ名;
FILEGROUPを指定しない場合はデフォルトのファイルグループにカタログが作られる。
フルテキストインデックスの作成
CREATE FULLTEXT INDEX
ON テーブル名(インデックスを作成する列名)
KEY INDEX テーブルのプライマリーキー(ユニーク)
ON カタログ名;
これで準備完了。
あとは、検索SQLを書いて実行するだけ。
SELECT * FROM テーブル名
WHERE CONTAINS(インデックスを作成した列名, ' "検索キーワード" OR "検索キーワード" ');
「CONTAINS」を使ってSQL文を書く。
検索キーワードの前後に半角アスタリスクをいれることでLIKE的に含む文字列が返される。
フルテキストインデックス対象の列の中に、複数キーワードを保存する場合は半角スペース区切りで保存する。
でないと正しい結果が返されなかった。
その2に複数キーワードについてもうちょい詳しく記述。