5

我有一個SQL Server 2008數據庫,全文索引設置爲用於搜索的一個表列。SQL Server全文沒有考慮到前導零

當試圖使用CONTAINS子句對以下條件執行對查詢的查詢:「003」時,它忽略前導零並返回匹配「3」的所有行。

我們正在努力考慮搜索的前導零,任何想法?

(全文的清單是空的)。

UPDATE:查詢

SELECT * FROM Table 
WHERE CONTAINS(SearchIndex, '"003*"') 
+0

向我們顯示您的查詢。 –

+0

查詢的輸出是什麼?你說它返回所有匹配「3」的行,但是它是否也返回帶有前導零的行?普通的SELECT * FROM Table where where SearhIndex LIKE'003%'是否有效? – TheBoyan

+0

確實返回帶有前導零的那些和沒有它們的那些。 – luisporras

回答

0

我前一段時間有過這樣類似的問題。

也許一種方法可能是通過全文搜索選擇幾個結果,然後從這些結果中選擇特定結果。但也許可以有更好的解決方案。

我試過這種方法,它實際上工作。它也工作很多,然後只選擇該值。

0

我遇到了同樣的問題,發現問題與全文解析器處理前導0的方式有關。 This post幫助我更好地理解。如果您使用sys.dm_fts_parser來檢查全文解析器如何解析具有前導0的數字,則可以自己查看問題。

我真的希望微軟允許這個'功能'關閉。其他答案中提到的解決方法效果很好,但是,不容易基於多個列進行匹配,例如各種全文搜索功能。