2011-06-15 68 views
2

我正在嘗試解決全文搜索語法的一些更精細的細節。我已經掌握了基礎知識,但是遇到以下問題。有關SQL Server全文搜索語法的問題

  1. this page頂部,它顯示了在需要雙引號例,包括示例性「燕麥片」。爲什麼這需要雙引號?這是一個錯字嗎?

  2. same page的底部,它指出的ANDAND NOTOR,或OR NOT應包在某些情況下,報價的任何實例。爲什麼?無論如何,這些阻止詞不是嗎?

  3. This page提供了許多例子,包括引用和不引用的搜索條件。 CONTAINS(Column, 'term')CONTAINS(Column, '"term"')有何區別?

回答

2

1)全文搜索使用雙引號作爲文本分隔符,如果你很可能有更復雜的搜索條件的很好的做法,尤其是使用它們。例如。您可以將短語或單詞放在雙引號中。

"Oatmeal" 
"Hot Oatmeal" 

2)我認爲在邏輯「和而不是或者與否」部分是因爲這是找到布爾條件和用引號括內容兩側。

e.g. OatMeal or Hot Oatmeal 

轉化爲

'"Oatmeal" or "hot oatmeal"' 

而不是

'oatmeal "or" hot oatmeal' 

3)它應該是包含(列, '條款')CONTAINSTABLE將使用3項查詢CONTAINSTABLE(表,列,'terms')我已經在一個數據庫上做了一些測試,其中包含了包含(,'「牙醫」')和包含(,'牙醫')的30k文檔返回了相同的652行。 Containstable使用相同的排名返回它們。

+0

謝謝。那麼如果關於燕麥片的聲明需要引用一個錯誤,你有什麼看法?看起來我的#3沒有區別。我修正了你指出的錯別字。 – 2011-06-15 14:44:40