1. 程式人生 > >通過拼音模糊搜尋漢字的功能實現

通過拼音模糊搜尋漢字的功能實現

一、原由
前一段時間用php實現通訊錄系統,需要用到拼音查詢漢字功能,匹配通訊錄的姓名欄位,於是在網上搜索已有的開原始碼,下面總結和分析一下思路和具體實現。

二、思路

查找了網上的多種解決方案,大致分為幾類:

1.用javascript實現前端實拼音模糊搜尋漢字,核心演算法有以下2種:

2.用資料庫函式來實現拼音模糊搜尋漢字:

3.後端語言邏輯實現拼音模糊搜尋漢字:

三、實現

實際實現中,首先基於現場電腦比較老舊,且瀏覽器都是老版本,在前端用js實現拼音模糊搜尋漢字可能會導致使用者系統卡頓的問題,否定了方案1 ; 考慮語言和資料庫因素,(php實現後臺,mysql資料庫) 優先考慮2.2 和4 ; 於是用方案4做了測試,發現實際使用當中,基於ASCII碼字典實現的拼音檢索漢字功能,有多音字查詢的問題,寫固定在程式邏輯裡之後,後期沒辦法修正; 因此,採用方案4,再進行拼音修正是一個比較好的方法。

於是就按照方案4的教程,使用MS的EXCEL巨集程式設計功能,複製VBA程式碼,製作數字簽名,然後使用函式進行操作。如教程中所說,有部分漢字識別不出來,就只能手動改了,也算是一個折衷的辦法。後來還用拼音檢索欄位來儲存英文名,後期拼音由於多音字識別錯誤的,可以修正,也還不錯。

然後就前端提醒使用者使用空格分割多個關鍵字,後臺邏輯用 “%” 做字串拼接,搜尋。