SQL Serverのフルテキスト検索の簡単な紹介
日本マイクロソフト プレミア フィールドエンジニアリング部の平山です。先日、遂SQL Server 2012の評価版がダウンロードできるようになりましたね。ぜひこの機会にいろいろな機能を試してみてください。さて今回は、SQL Server 2012 フルテキスト検索の新機能について紹介していきます。この連載では製品のコアとなるデータベースエンジンの話題が多かったので、これまでとは少し毛色の違うトピックですがどうぞお付き合いください。
まずはSQL Serverのフルテキスト検索の簡単な紹介から始めましょう。SQL Serverに格納された文字型データに対して、パターン検索やあいまい検索を実装しようとする時の、最初の選択肢としてLIKE句が挙げられることが多いのではないでしょうか。確かに検索対象のデータが小規模な場合であれば、LIKE句を使用することによって、既存の環境に手を加えることなく要求を満たすことができる場合も多いことも事実です。
ただし、データ量が膨大な場合や、通常データのハンドリングに不向きな検索条件(注1)な場合などは、クエリのパフォーマンスが大幅に低下してしまいます。
注1) あいまい検索のためのワイルドカードで検索文字列の前後を挟むような条件では、インデックスを使うことができません。そのためパフォーマンスの劣化をまねくことが多くなります。
▼例
SELECT col2 FROM T1 WHERE col1 like ‘%検索文字列%’
GO
そのような状況であっても、高速なパフォーマンスの安定的な提供が可能になり、さらに柔軟な文字列検索条件が使用可能となるコンポーネントがフルテキスト検索です。