[Search Server]改善使用者搜尋經驗(四)

[Search Server]改善使用者搜尋經驗(四)

中文斷詞算是全文檢索中最討厭問題,想讓全文檢索關鍵字100%如TSQL Like還真麻煩,

一般來說全文檢索為了效能考量,斷詞工具不太可能一個一個字斷,

這不僅讓索引項目變多、硬碟使用空間變多、檢索效能變慢、爬檔案效能變慢...等缺點,

所以後面大部分斷詞程式幾乎都採取名詞(語意)來處理(Token演算該詞彙權重),

但這樣就會讓搜尋結果變差(得透過模糊搜尋彌補,可是Rank又是一問題),

為了改善使用者搜尋經驗,Search Server提供自訂字典和同義字方法來處理,

下面自己記錄一下整個過程。

 

1.自訂字典

這方法比較不可行,第一不支援繁體中文,

第二重新啟動Search Service後得重新執行完整編目(公司文件數量超過1千3百萬以上),

但我還是測試了一下,我依照MSDN步驟 Custom0004.lex (繁中LCID1028 對應hex:0004)建立該字典無法正確找到我想要的關鍵字

或許我的方法有錯,但想偷吃步看來是行不通了

image

 

2.新增同義字

同義字檔案有兩種類型,替換集和擴充集,

透過替換集告知搜尋引擎把使用者輸入字詞替換為另一字詞,

例如我輸入近有鼠患(可能無法找到結果),可以替換為"鼠"和"鼠患"藉以提高搜尋使用者經驗。

或是使用擴充集把使用者輸入字詞同義其他字詞,

例如最常見就是輸入台北市但會找不到臺北市,這時透過擴充集就可以改善。

重點是該方法只需重新啟動服務不須執行任何編目,可說完全符合我現實世界需求

image

 

 

測試中文斷詞

預設比對 搜尋馬城高夜 

image

找不到結果很正常。

 

我先使用擴充集看看是否可以改善搜尋經驗

修改 tscht.xml 新增相關同義字

預設位置C:\Program Files\Microsoft Office Servers\14.0\Data\Config

image

 

image

注意編碼要為unicode。

 

將該檔案複製到以下三個config資料夾

C:\Program Files\Microsoft Office Servers\14.0\Data\Office Server\Applications\GUID\Config

image

ps:該路徑位置MSDN上應該寫錯了。

 

重新啟動Search Service後再次搜尋

 

預設比對 搜尋馬城高夜 

image

可以看到我剛剛設定的同義字生效了。

 

搜尋 城高 也沒問題

image

 

搜尋 馬城高

image

 

再來測試替換集

預設比對 搜尋勝將趙子龍

image

輸入這樣的關鍵字找不到是很正常的。

 

使用替換集加入以下內容,步驟和上面一樣

image

 

再次搜尋勝將趙子龍

image

即可找到相關結果。

 

 

 

 

參考

建立自訂字典 (Search Server 2010)

管理可以改進搜尋結果的設定 (Search Server 2010)

新增首選的關鍵字字詞 (Search Server 2008)

語言功能 (FAST Search Server 2010 for SharePoint)

管理同義字檔案 (Search Server 2010)

Creating Custom Dictionaries for special terms to be indexed 'as-is' in SQL Server 2008 Full-Text Indexes