データベースの1つに全文カタログがありますが、1つのキーワードが機能しません。
例えば:
select * from table where name = 'jon' -- result set returns as expected
select * from table where Contains(a.Name, '"jon"') -- no result set
何が原因でしょうか?
ありがとうございました。
次の記事をご覧になることをお勧めします。
全文検索のストップワードとストップリストの構成と管理 (Microsoftドキュメント)
フルテキストインデックスが肥大化するのを防ぐために、SQL Serverには、検索に役立たない一般的に発生する文字列を破棄するメカニズムがあります。これらの破棄された文字列はストップワードと呼ばれます。インデックスの作成中に、フルテキストエンジンはフルテキストインデックスからストップワードを省略します。これは、全文クエリがストップワードを検索しないことを意味します。
ストップリストの仕組みの一般的な概要が含まれており、ストップリストを変更して探しているものを実現する方法を説明する別の記事を参照しています。
ALTER FULLTEXT STOPLIST(Transact-SQL) (Microsoft Docs)
現在のデータベースのデフォルトのフルテキストストップリストにストップワードを挿入または削除します。
コマンドの構文は次のとおりです。
ALTER FULLTEXT STOPLIST stoplist_name { ADD [N] 'stopword' LANGUAGE language_term | DROP { 'stopword' LANGUAGE language_term | ALL LANGUAGE language_term | ALL } ;