停止字詞和停止清單
為精簡全文檢索索引,SQL Server 具有一種機制,可捨棄無助於搜尋卻經常出現的字串。這些捨棄的字串稱為「停止字詞」(Stopword)。在索引建立期間,全文檢索引擎會從全文檢索索引省略停止字詞。這代表全文檢索查詢不會搜尋停止字詞。
重要事項 |
---|
SQL Server 2005 非搜尋字已經由停用字詞所取代。當資料庫從舊版升級為 SQL Server 2008 時,SQL Server 2008 便不再使用非搜尋字檔案。不過,這些非搜尋字檔案會儲存在 FTDATA\ FTNoiseThesaurusBak 資料夾中,而且您之後可以在更新或建立對應的 SQL Server 2008 停用字詞表時使用它們。如需有關如何將非搜尋字檔案升級為停用字詞表的詳細資訊,請參閱<全文檢索搜尋升級>。 |
停止字詞可以是具有特定語言意義的字詞,或者也可以是不具有語言意義的 Token。例如,在英文中,"a"、"and"、"is" 及 "the" 等字會排除在全文檢索索引外,因為一般而言這些字都無助於搜尋。
雖然全文檢索索引會略過包含的停止字詞,但仍會考慮其位置。例如,請參考例句 "Instructions are applicable to these Adventure Works Cycles models"。下表說明這些單字在片語中的位置:
單字 |
位置 |
---|---|
Instructions |
1 |
are |
2 |
applicable |
3 |
to |
4 |
these |
5 |
Adventure |
6 |
Works |
7 |
Cycles |
8 |
models |
9 |
停止字詞 "are"、"to" 及 "these",分別為第 2、第 4 及第 5 個字,這些文字都不會包含在全文檢索索引中。但仍會保留這些文字的位置資訊,使句子中其他文字的位置不受影響。
停止清單
在 SQL Server 2008 中,停止字詞在資料庫中是使用稱為停止清單的物件來管理。「停止清單」 (Stoplist) 是停止字詞的清單,與全文檢索索引相關聯時,會套用至該索引上的全文檢索查詢。
建立停用字詞表
您可以使用下列任一方式建立停用字詞表:
在資料庫中使用系統提供的停用字詞表。SQL Server 隨附一份系統停用字詞表,其中包含每種受支援語言的常用停用字詞,而且適用於預設與給定斷詞工具相關聯的每種語言。此系統停用字詞表包含所有受支援語言的常見停用字詞。您可以複製此系統停用字詞表,並且透過加入和移除停用字詞,自訂您的複本。
系統停用字詞表是安裝在資源資料庫。
建立自己的停用字詞表,然後針對您指定的任何語言,在此停用字詞表中加入停用字詞。您也可以在必要時從停止清單卸除停止字詞。
在目前的伺服器執行個體中使用來自任何其他資料庫的現有自訂停用字詞表,然後再視需要加入和卸除停用字詞。
重要事項 |
---|
只有在相容性層級 100 底下才支援 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。在相容性層級 80 和 90 底下,則不支援這些陳述式。不過,在所有相容性層級底下,系統停用字詞表都會自動與新的全文檢索索引產生關聯。 |
建立停用字詞表
在停用字詞表中加入或卸除停用字詞
卸除停用字詞表
在查詢中使用停用字詞表
若要在查詢中使用停止清單,您必須將其與全文檢索索引產生關聯。您可以在建立索引時將停用字詞表附加到全文檢索索引,也可以之後再更改索引以加入停用字詞表。
建立全文檢索索引並讓停用字詞表與其產生關聯
讓停用字詞表與現有的全文檢索索引產生關聯或取消關聯
如果停用字詞造成全文檢索查詢的布林運算失敗,則抑制錯誤訊息的顯示
檢視停用字詞表和停用字詞表中繼資料
檢視停用字詞表的所有停用字詞
取得有關目前資料庫中所有停止清單的詳細資訊
檢視斷詞工具、同義字和停止清單組合的 Token 化結果