2012-01-25 21 views
3

Microsoft's documentation for CONTAINSには、次の2つの例があります。 2番目の例ではそうではない最初の例は、二重引用符で両方の検索用語を置くことSQL Serverのフルテキスト検索の構文

CONTAINS(Name, ' "Mountain" OR "Road" ') 

も...

CONTAINS(Description, ' Aluminum AND spindle '); 

注意。私はそれが2つの違いは何かを説明する場所を見つけることができないようです。

どちらもFORMSOF(INFLECTIONAL, ...)またはFORMSOF(THESAURUS, ...)のいずれも使用されていないので、私は両方の場合に単語が文字通り比較されると仮定できます。それは両方のバージョンが等しいことを意味します。では、最初の例で二重引用符で囲む理由は何ですか?

答えて

3

引用符は、検索語句にワイルドカードまたは複数の単語が含まれている場合にのみ厳密に必要とされることを理解しています。検索フレーズが単一の単語であり、ワイルドカードを使用しない場合、厳密に言えば、二重引用符は必要ありません。もちろん

CONTAINS(LastName, 'Anders') --double quotes not required 
CONTAINS(LastName, '"Anders*"') --double quotes required since wildcard used. Match Anders, Anderson, etc 
CONTAINS(Title, '"End of time"') --double quotes required, since multiple words 

それらが必要とされていない場合でも、二重引用符は、まだ使用することができます。

:ここ

CONTAINS(LastName, '"Anders"') 

は、ワイルドカードが使用されている二重引用符の必要性についての引用BOLです

述語がCONTAINS(column、 'text *')となるように、テキストとアスタリスクが二重引用符で区切られていない場合、フルテキスト検索ではアスタリスクが文字とみなされ、テキスト*

関連する問題