SQL Server 2005 で FT 検索をセットアップしましたが、「Lias」キーワードを「Lia's」を含むレコードに一致させる方法が見つからないようです。私が基本的に望んでいるのは、人々がアポストロフィなしで検索できるようにすることです。
私はかなり長い間この問題を繰り返してきたので、どんな助けも本当にありがたいです.
SQL Server 2005 で FT 検索をセットアップしましたが、「Lias」キーワードを「Lia's」を含むレコードに一致させる方法が見つからないようです。私が基本的に望んでいるのは、人々がアポストロフィなしで検索できるようにすることです。
私はかなり長い間この問題を繰り返してきたので、どんな助けも本当にありがたいです.
EDIT 2:これで問題が実際に解決されないことに気付きました。無視して他の回答を参照してください! 以下のコードは、ユーザーが「積荷を放棄しました」など、存在してはならないアポストロフィを挿入した場合の結果を返します。
私は FT をローカルにインストールしておらず、これをテストしていません。CONTAINS の構文を使用して、元のオカレンスとアポストロフィを取り除いたものの両方をテストできます。
SELECT *
FROM table
WHERE CONTAINS ('value' OR Replace('value', '''',''))
編集: 二重引用符を使用してフレーズを検索できます。
SELECT *
FROM table
WHERE CONTAINS ("this phrase" OR Replace("this phrase", '''',''))
CONTAINS については、MSDN のドキュメントを参照してください。これは実際には句読点がとにかく無視されることを示していますが、ここでもテストしていません。それだけで試してみる価値があるかもしれませんCONTAINS('value')。
別の試み:
SELECT surname
FROM table
WHERE surname LIKE '%value%'
OR REPLACE(surname,'''','') LIKE '%value%'
これは私の場合 (FT が有効になっていない場合) に機能します。つまり、O'Connor または OConnor を検索すると同じ結果が得られます。