Sql-Server

SQL Server:沒有由噪音詞引起的搜尋結果

  • April 13, 2016

我已經通過 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

根據wBob的建議,我將嘗試重建,這可能會有所幫助

只需停用停止列表即可解決問題。可能有更好的解決方案,但這對我有用。

Use database; 
ALTER FULLTEXT INDEX ON table
  SET STOPLIST OFF;
GO

引用自:https://dba.stackexchange.com/questions/135062