Sql-Server
SQL Server:沒有由噪音詞引起的搜尋結果
我已經通過 SQL Server 2008 的導入/導出將數據庫從 SQL Server 2000 移動到 SQL Server 2014,以使其兼容 2014 年導入。到目前為止效果很好。
我發現使用通常在停止列表中的單詞(如文章)會破壞或破壞全文搜尋中的檢索並且不返回任何結果。只使用重要的關鍵字會照常返回結果。AFAIK 在舊版本的 SQL Server 中使用了與停止列表不同的系統。雖然我在FTData文件夾中找不到任何相關內容,因為它要麼是空的,要麼是已註釋的。
通過 SQL Server Management Studio 檢查數據庫時,我看到所選數據庫中沒有配置停止列表(在Storage下)。我嘗試根據系統停止列表添加一個新的,但它對行為沒有影響。
什麼會導致這種行為?
更新
使用的查詢:
SELECT ProductID FROM SearchTable WHERE CONTAINS(*, '"word"') AND CONTAINS(*, '"noiseword"')
結果失敗,因為在搜尋查詢中,單詞是用 AND 連接的。使用乾擾詞顯然總是返回 false,因此不返回任何項目。
我試圖改變這種行為,但這並沒有被阻止:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'transform noise words', 1; RECONFIGURE; GO
只需停用停止列表即可解決問題。可能有更好的解決方案,但這對我有用。
Use database; ALTER FULLTEXT INDEX ON table SET STOPLIST OFF; GO