フルテキスト検索の動作の変更
このトピックでは、フルテキスト検索の動作変更について説明します。 動作変更によって、SQL Server 2012 の機能や操作方法が SQL Server の以前のバージョンと異なっています。
SQL Server 2012 におけるフルテキスト検索の動作の変更
SQL Server 2012 では、アメリカ英語 (LCID 1033) とイギリス英語 (LCID 2057) 用に新しいバージョンのワード ブレーカーとステミング機能がインストールされます。 ただし、以前の動作を維持する場合は、これらのコンポーネントの以前のバージョンに切り替えることができます。 詳細については、「米国英語と英国英語に使用されるワード ブレーカーの変更」を参照してください。
新しいワード ブレーカーとステミング機能のインストール
SQL Server 2012 では、フルテキスト検索とセマンティック検索で使用されるすべてのワード ブレーカーおよびステミング機能が更新されます。 インデックスのコンテンツとクエリの結果の一貫性を保つために、既存のフルテキスト インデックスを再作成することをお勧めします。
英語向けの新しいワード ブレーカーがあります。 以前の動作を維持する必要がある場合は、「米国英語と英国英語に使用されるワード ブレーカーの変更」を参照してください。
SQL Server の以前のリリースに含まれていたデンマーク語、ポーランド語、およびトルコ語向けのサードパーティ製のワード ブレーカーは、Microsoft コンポーネントに置き換えられました。 新しいコンポーネントは既定で有効になっています。
チェコ語とギリシャ語向けの新しいワード ブレーカーがあります。 SQL Server フルテキスト検索の以前のリリースでは、これらの 2 つの言語のサポートは含まれていません。
新しいワード ブレーカーとステミング機能の動作の変更
新しいコンポーネントでは、フルテキスト インデックスを作成してクエリを行ったときに、古いコンポーネントとは異なる結果が返されることがあります。 次の表は、英語の結果で予想される相違点を示しています。
ワード ブレーカーとステミング機能の以前の動作を維持する必要がある場合は、次のトピックを参照してください。
新しいコンポーネントは、次のような詳細な結果を返す場合があります。
検索語句 |
ワード ブレーカーとステミング機能が以前のバージョンの場合の結果 |
ワード ブレーカーとステミング機能が新しい場合の結果 |
---|---|---|
cat-dog |
cat dog |
cat cat-dog dog |
cat@dog.com |
cat com dog |
cat cat@dog.com com dog |
12/11/2011 (用語は日付です) |
12/11/2011 dd20111211 |
11 12 12/11/2011 2011 dd20111211 |
新しいコンポーネントは、次のような類似した結果を返す場合があります。
用語 |
ワード ブレーカーとステミング機能が以前のバージョンの場合の結果 |
ワード ブレーカーとステミング機能が新しい場合の結果 |
---|---|---|
100$ |
100$ nn100$ |
100$ nn100usd |
022 |
022 nn022 |
022 nn22 |
10:49AM (用語は時刻です) |
10:49am tt1049 |
10:49am tt24104900 |
新しいコンポーネントは、次のような少数の結果またはアプリケーションで予期できない結果を返す場合があります。
用語 |
ワード ブレーカーとステミング機能が以前のバージョンの場合の結果 |
ワード ブレーカーとステミング機能が新しい場合の結果 |
---|---|---|
jěˊÿqℭžl (用語が、有効な英語の文字ではありません) |
‘jěˊÿqℭžl’ |
je yq zl |
table's |
table's table |
table's |
cat- |
cat cat- |
cat |
v-z(v と z はノイズ ワードです) |
(結果なし) |
v-z |
$100 000 USD |
$100 000 nn000 nn100$ usd |
$100 000 usd nn100000usd |
beautiful U.S land |
beautiful land u.s us |
beautiful land |
Mt. Kent and Mt Challenger |
challenger kent mt mt. |
mt kent challenger |
SQL Server 2008 におけるフルテキスト検索の動作の変更
SQL Server 2008 以降のバージョンでは、Full-Text Engine がデータベース サービスとして、サーバー クエリとストレージ エンジン インフラストラクチャの一部であるリレーショナル データベースに統合されています。 フルテキスト検索の新しいアーキテクチャにより、次の目的が達成されます。
ストレージおよび管理の統合 : SQL Server 固有のストレージおよび管理機能にフルテキスト検索が直接統合され、MSFTESQL サービスが廃止されました。
フルテキスト インデックスが、ファイル システム内ではなくデータベース ファイル グループ内に格納されます。 バックアップの作成など、データベースに対する管理操作は、自動的にフルテキスト インデックスにも影響します。
フルテキスト カタログが、ファイル グループに属さない仮想オブジェクトとなりました。これは、フルテキスト インデックスのグループを指す論理的概念です。 そのため、多くのカタログ管理機能が非推奨となった結果、一部の機能に重大な変更が生じています。 詳細については、「SQL Server 2012 データベース エンジンの非推奨機能」および「フルテキスト検索の重大な変更」を参照してください。
注 フルテキスト カタログを指定する SQL Server 2005 の Transact-SQL DDL ステートメントは、正しく動作します。
クエリ処理の統合 : 新しいフルテキスト検索クエリ プロセッサがデータベース エンジンに含まれ、SQL Server クエリ プロセッサに完全に統合されています。 このため、クエリ オプティマイザーはフルテキスト クエリ述語を認識し、自動的に最も効率的に実行します。
管理およびトラブルシューティングの強化: フルテキスト インデックス、特定のワード ブレーカーの出力、ストップワードの構成など、検索構造の分析に役立つツールが、フルテキスト検索の統合によって提供されます。
ノイズ ワードとノイズ ワード ファイルが、ストップワードとストップリストに置き換えられました。 ストップリストは、ストップワードの管理タスクを容易にし、異なるサーバー インスタンスや環境間の整合性を向上させるデータベース オブジェクトです。 詳細については、「フルテキスト検索に使用するストップワードとストップリストの構成と管理」を参照してください。
SQL Server 2008 以降のバージョンには、SQL Server 2005 に存在する言語のうち、多くの言語に対する新しいワード ブレーカーが含まれています。 変更がないのは、英語、韓国語、タイ語、中国語 (すべての形式) のワード ブレーカーだけです。 その他の言語については、SQL Server 2005 データベースの SQL Server 2008 以降のバージョンへのアップグレード時にフルテキスト カタログをインポートした場合、フルテキスト カタログのフルテキスト インデックスで使用される 1 つまたは複数の言語が、インポートされたワード ブレーカーとは動作がわずかに異なる、新しいワード ブレーカーに関連付けられる可能性があります。 クエリとフルテキスト インデックスの内容を確実に完全一致させる方法の詳細については、「SQL Server 2005 からのフルテキスト検索のアップグレード」を参照してください。
新しい FDHOST ランチャー (MSSQLFDLauncher) サービスが追加されました。 詳細については、「フルテキスト検索の概要」を参照してください。
フルテキスト インデックス作成では、FILESTREAM 列が varbinary(max) 列と同じように処理されます。 FILESTREAM テーブルに、各 FILESTREAM BLOB のファイル名拡張子を含む列が含まれている必要があります。 詳細については、「フルテキスト検索でのクエリ」、「検索用フィルターの構成と管理」および「sys.fulltext_document_types (Transact-SQL)」を参照してください。
フルテキスト エンジンは、FILESTREAM BLOB の内容のインデックスを作成します。 イメージなど、インデックスを作成しても役に立たないファイルもあります。 FILESTREAM BLOB が更新されると、インデックスが再作成されます。
関連項目
概念
SQL Server 2005 からのフルテキスト検索のアップグレード