フルテキストインデックス
全文検索などに利用する。
今回のシステムで全文検索したいと要望があるので調べた。
データベースのフルテキストインデックスを有効化
[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に複数キーワードについてもうちょい詳しく記述。