下面要分享的是解決問題的過程和方法.
今天發生客戶的主機, 無法進行全文檢索的指令, 在執行SQL 指令後, 會發生
"不支援此種介面" (No such interface supported) 的錯誤.
這個問題, 似乎在2年前我有處理過, 由於都沒有留下文件, 而且年代久遠已經完全忘記發生過什麼事情及如何解決, 所以重新再處理一次.
■ step 1: 先用中文字 google 看看, 發現都沒有相關的文章.
■ step 2: 改用英文字 google 看看, 看了很多篇, 似乎也無解.
■ step 3: 縮小 google seareh 的範圍, 加入 /site:microsoft.com , 似乎也無解.
■ step 4: google 無效, 改成比較正式機與測試機間的差異. 開始提出可能的假設.
■ step 4.1: 由於客戶給的Database 主機是給一般的 user 帳號, 所以很多指令無法執行, 先假設是權限造成. 請客戶用管理員帳號, 重建一次全文目錄, 結果還是一樣, 會出錯, 所以排除是權限因素.
■ step 4.2: 測試看看, 使用不同語言的詞庫來斷詞, 看看是否能成功. 結果可以, 但由於詞庫不合, 用英文來斷中文字, 會查不出資料. 可以確定原因之一是: 是中文繁體斷詞出錯.
■ step 4.3: 檢查測試機與正式機上面斷詞的相關參數, 發現 classid 不一致.
v12.0 版就是使用 SQL server 2005 的斷詞 classid 應該是:
954F1760-C1BC-11D0-9692-00A0C908146E
v2.0 就是不斷詞 classid 應該是:
1680E7C3-9430-4A51-9B82-1E7E7AEE5258
■ step 5: 請客戶設定 class id 後, 重啟 SQL Server 服務, 就大功告成, 正常運作了.
沒有留言:
張貼留言