transform noise words使用伺服器組態選項來隱藏錯誤訊息,如果噪音字,即停止詞,導致在全文檢索查詢中的布爾邏輯操作傳回零行。 此選項適用於使用 CONTAINS 述詞進行全文檢索的查詢,其中布爾運算或 NEAR 作業包含雜訊詞。 下表說明可能的值。
| 價值觀 | 說明 |
|---|---|
| 0 | 不會轉換非雜訊字(或停用字詞)。 當全文檢索查詢包含非搜尋字組時,查詢會傳回零個數據列,而 SQL Server 會引發警告。 此為預設行為。 請注意,警告是運行時警告。 因此,如果未執行查詢中的全文搜索子句,就不會引發警告。 針對本機查詢,即使有多個全文檢索查詢子句,也只會引發一個警告。 針對遠端查詢,鏈接的伺服器可能不會轉譯錯誤;因此,可能不會引發警告。 |
| 1 | 雜訊字(或停用字詞)被轉化。 系統會忽略它們,並評估查詢的其餘部分。 如果在鄰近詞彙中指定雜訊詞,SQL Server 會移除它們。 例如,非搜尋字組 is從CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)')中被移除,將搜尋查詢轉換成CONTAINS(<column_name>, 'NEAR(hello,goodbye)')。 請注意,由於只有一個有效的搜尋字詞,CONTAINS(<column_name>, 'NEAR(hello,is)') 將被轉換成 CONTAINS(<column_name>, hello)。 |
轉換噪音詞設定的效果
本節說明在替代設定transform noise words下,包含噪音字「the」的查詢行為。 假設範例全文檢索查詢字串會針對包含下列數據的數據表數據列執行: [1, "The black cat"]。
備註
所有這些情況都可能會產生噪音詞警告。
將雜訊詞轉換為 0:
查詢字串 結果 “ cat” 和 “the”沒有結果(“ the” AND “cat” 的行為相同。“ cat” 靠近 “the”沒有結果(“ the” NEAR “cat” 的行為相同。)“ the” 和 非 “black”無任何結果 “ black” 和 非 “the”無任何結果 將雜訊字詞設定為 1:
查詢字串 結果 “ cat” 與 “the”按標識碼為 1 的數據列 “ cat” 接近 “the”按標識碼為 1 的數據列 “ the” 和 不是 “black”無任何結果 “ black” 且不為 “the”按標識碼為 1 的數據列
範例
下列範例會設定 transform noise words 為 1。
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO