まずは必要なサーバーエディション
SQL Server 2008 Express with Advanced Services 以上のもの
SQL Server 2008 Express だけの場合は with Advanced Services をダウンロードし
・インストーラを起動インストールセンター
・「メンテナンス」をクリック。「エディションのアップグレード」を選択
・「インストール」の「SQL Server の新規スタンドアロンインストールまたは既存のインストールへの機能の追加」を選択
これで機能を追加できる。
実際の利用方法
フルテキストインデックスを保存するカタログを作成
CREATE FULLTEXT CATALOG [作成するカタログ名] ON FILEGROUP [ファイルグループ名];
あとは Microsoft SQL Server Management Studio で行うと楽
・テーブル-デザイン
 メニューのテーブルデザイナ からフルテキストインデックスを選択
フルテキスト検索を行う列名で、フルテキスト用インデックスを作成
CREATE FULLTEXT INDEX
ON テーブル名(インデックスを作成する列名) ・・・複数列ある場合は全部指定する
KEY INDEX テーブルの一意キー
ON カタログ名;
上記で指定する「テーブルの一意キー」ですが、複数列からなる一意キーを指定したところエラーになりました。テーブルにIDENTITY列を追加し別途一意キーを作成し対応しました。(複数列は対応してないんかな・・・)
検索文:
SELECT * FROM テーブル名 WHERE CONTAINS( (列名,列名) '"検索キーワード" AND "検索キーワード"');
※フルテキストインデックスの作成はバックグランド処理のため反映までに数秒時間がかかるようです。それで 更新・追加→すぐ検索 といった流れの場合、検索結果に表示されないことがあります。 ・・・しゃぁないのかな。。。
※日本語と英単語(型番とかも含めて)の検索の場合、言語は「日本語」にしておくほうが利用しやすい。「ニュートラル」だと日本語のインデックス作成精度があまりよくない。(ニュートラルだと句読点やスペースで単語を区切るからだと思われる)
http://msdn.microsoft.com/ja-jp/library/ms142507.aspx

解決しましたら、いいね か ツイート をお願いします

コメントする