トップ回答者
SQLSERVER2008R2のフルテキストインデックスで検索できない文字について

質問
-
SQLServer2008R2のフルテキストインデックスの利用を検討しています。
以下のテーブルを作成し、「title」列に対して、フルテキストインデックスを作成しました。
登録したデータに対して、以下のSQL文を実行しましたが、検索結果はありません。
select
[title]
from
[dbo].[test]where
CONTAINS(([title]),'"and"')「and」は検索の論理演算子になっているためか、ヒットしないのでしょうか?
フルテキストインデックスを利用した場合で、ヒットしない文字列にはどのようなものがありますか?
またエスケープ等を行う事で、ヒットさせる事ができますでしょうか?以上、よろしくお願い致します。
<作成したテーブル>
CREATE TABLE [dbo].[test](
[cd] [varchar](20) NOT NULL,
[title] [varchar](512) NULL,
PRIMARY KEY CLUSTERED
(
[cd] ASC
)
) ON [PRIMARY]<登録したデータ>
insert test values('01','日本')
insert test values('02','アメリカ')
insert test values('03','日本andアメリカ')
回答
-
TO:星様
秋山と申します。
ご連絡ありがとうございます。
頂いた情報については、別途確認させて頂きます。
私が質問に記載した「and」がヒットしない原因については、私も質問後調査してみました。
フルテキストインデックスを作成する際には、利用する「ストップリスト」を指定し、「ストップリスト」に登録された「ストップワード」は、インデックスから除外されるようです。
なので、「and」をヒットさせたい場合には、ストップワードから「and」を除外すればいいようです。
※間違っていたらすいません。
以上、よろしくお願い致します。
- 回答としてマーク 星 睦美 2013年7月30日 8:02
すべての返信
-
フォーラム オペレーターの星 睦美です。
会社員33 さん、投稿ありがとうございます。
今回は私のほうでも質問の内容に関連した情報がないか探してみました。
以下のマイクロソフト サポートで公開されている技術情報が参考になるのではないかと思いますので、ご紹介します。(参考情報)
・日本語用の SQL Server フルテキスト検索エンジンを使用する場合の考慮事項
お役にたちましたら幸いです。日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美
-
TO:星様
秋山と申します。
ご連絡ありがとうございます。
頂いた情報については、別途確認させて頂きます。
私が質問に記載した「and」がヒットしない原因については、私も質問後調査してみました。
フルテキストインデックスを作成する際には、利用する「ストップリスト」を指定し、「ストップリスト」に登録された「ストップワード」は、インデックスから除外されるようです。
なので、「and」をヒットさせたい場合には、ストップワードから「and」を除外すればいいようです。
※間違っていたらすいません。
以上、よろしくお願い致します。
- 回答としてマーク 星 睦美 2013年7月30日 8:02
-
秋山 さん、返信ありがとうございます。
今回の質問の"and" に関して参考になりましたので、私から[回答としてマーク]してフォーラムで共有させていただきますね。
こちらのスレッドをかりて、MSDN ライブラリの関連ページをご紹介します。・ストップ ワードとストップ リスト:
(抜粋)
ストップ ワードは、特定の言語で意味を持つ単語の場合や言語的な意味のないトークンの場合があります。たとえば、英語では、"a"、"and"、"is"、"the" などの単語は、検索に役立たないことが知られているため、フルテキスト インデックスから除外されます。
それでは、今後ともMSDN フォーラムをよろしくお願いします。日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美