transform noise words 選項

如果非搜尋字 (亦即停用字詞) 造成全文檢索查詢的布林作業傳回零個資料列,則使用 transform noise words 伺服器組態選項可抑制錯誤訊息的顯示。若全文檢索查詢使用的 CONTAINS 述詞中,布林作業或 NEAR 作業有包括非搜尋字,這個選項就很有用。下表說明可能的值。

說明

0

非搜尋字 (或停用字詞) 不會轉換。當全文檢索查詢包含非搜尋字時,此查詢會傳回零個資料列,而且 SQL Server 會引發警告。這是預設行為。

附註附註
這項警告是執行階段的警告。因此,如果查詢中的全文檢索子句並未執行,就不會引發此警告。若為本機查詢,只會引發一則警告,即使含有多重全文檢索查詢子句也一樣。若為遠端查詢,連結的伺服器可能不會轉送錯誤。因此,可能不會引發此警告。

1

非搜尋字 (或停用字詞) 會轉換。系統會忽略它們,並且評估查詢的其餘部分。

如果您在相近詞彙中指定非搜尋字,SQL Server 就會移除它們。例如,系統會從 CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)') 中移除非搜尋字 is,並將搜尋查詢轉換成 CONTAINS(<column_name>, 'NEAR(hello,goodbye)')。請注意,CONTAINS(<column_name>, 'NEAR(hello,is)') 會轉換成只有 CONTAINS(<column_name>, hello),因為其中只有一個有效的搜尋詞彙。

transform noise words 設定的作用

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

[!附註]

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

  • 當 transform noise words 設定為 0 時:

    查詢字串

    結果

    "cat" AND "the"

    沒有結果 (與 "the" AND "cat" 的行為相同)。

    "cat" NEAR "the"

    沒有結果 (與 "the" AND "cat" 的行為相同)。

    "the" AND NOT "black"

    沒有結果

    "black" AND NOT "the"

    沒有結果

  • 當 transform noise words 設定為 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