0


1

MS SQL 2008のFTS(全文検索)を利用したWebサイトがあります。 ユーザーが* It’s のようなアポストロフィで文字列を検索した場合、検索は正常に機能します。 ただし、ユーザーが thats を検索し、データベースに that *が格納されている場合、結果は返されません。

また、理想的には、「それ」を検索すると、「* thats 」や「 that *」なども返されるはずです。

FTSがこれをサポートしているかどうか、そしてそれを可能にするために私ができることを誰かが知っていますか?

WT

1 Answer


1


パラメータを使う

myCommand.Parameters.AddWithValue("@searchterm", txtSearch.Text.Trim());

面倒なことなしに、それはあなたによって処理されます。

それに関しては、それとそれはあなたがhttp://msdn.microsoft.com/en-us/library/aa259235%28SQL.80%29.aspx[SOUNDEX]キーワードを調べる必要があるということです。 4GuysfromRollaには、それについてもhttp://www.4guysfromrolla.com/webtech/tips/t103101-1.shtml [古い記事]があります。

更新 *このhttp://www.eggheadcafe.com/forumarchives/SQLServerfulltext/Jul2005/post23397705.asp [ここ]についてのTFSチームメンバーの一人からの素晴らしい話があります。

彼を引用する:

_ ダニエルは正しいフルテキスト検索(FTS)はSOUNDEXを直接使用しませんが、SOUNDEXと組み合わせて使用​​できます。 さらに、以下のリンクと、* CONTAINS *を組み合わせることに関する以下のTSQLの例を確認することをお勧めします。
* Levenshtein距離アルゴリズム*と同様に、改良されたsoundexアルゴリズムのいくつかを見たいと思うかもしれません。もっと多くのコード例を見つけるためにGoogleを検索できるはずです。すぐに見つかりました - http://www.winnetmag.com/Article/ArticleID/26094/26094.htmlで "Double Metaphone Sounds Great"
Double Metaphoneを実装するいくつかのユーザー定義関数(UDF)を含むzipファイルでコードを自由にダウンロードできます。

以下にSOUNDEXの追加リンクを示します。+ http://www.merriampark.com/ld.htm + http://www.bcs-mt.org.uk/nala_006.htm
_

(範囲外のため省略)

use pubs

-- Combined SOUNDEX OR CONTAINS query that
-- Searches for names that sound like "Michael".
SELECT
    au_lname, au_fname
FROM
    authors -- returns 2 rows
WHERE
    contains(au_fname, 'Mich*') or SOUNDEX(au_fname) = 'M240'

_ ありがとう、ジョン SQL全文検索ブログ+ http://spaces.msn.com/members/jtkane/ _