共用方式為


轉換非搜尋字伺服器組態選項

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) ,因為只有一個有效的搜尋詞彙。

轉換非搜尋字設定效果

這一節將說明包含非搜尋字 "the" 的查詢行為 (在 transform noise words 的替代設定底下)。 假設範例全文檢索查詢字串會針對包含下列資料的資料表資料列執行:[1, "The black cat"]

注意

所有的這類案例都可以產生非搜尋字警告。

  • 轉換非搜尋字設為 0:

    查詢字串 結果
    "cat" AND "the" 無結果 ("the" AND "cat" 的行為是相同的)。
    "cat" NEAR "the" 無結果 ("the" NEAR "cat" 的行為是相同的)。
    "the" AND NOT "black" 搜尋支援
    "black" AND NOT "the" 搜尋支援
  • 轉換非搜尋字設為 1:

    查詢字串 結果
    "cat" AND "the" 識別碼為 1 之資料列的叫用
    "cat" NEAR "the" 識別碼為 1 之資料列的叫用
    "the" AND NOT "black" 搜尋支援
    "black" AND NOT "the" 識別碼為 1 之資料列的叫用

範例

下列範例會將 transform noise words 設定為 1

sp_configure 'show advanced options', 1;  
RECONFIGURE;  
GO  
sp_configure 'transform noise words', 1;  
RECONFIGURE;  
GO  

另請參閱

伺服器組態選項 (SQL Server)
CONTAINS (Transact-SQL)