在 Joyo 網站搜尋書籍時發現自動完成功能:輸入 de 出現「德語」、「德川家康」等項目;輸入 deyu 則顯示以「德語」開頭的結果;但輸入 de yu(含空格)則無結果。
假設資料表 item_t(涵蓋書籍、CD 等商品):
id:商品 IDprice:價格name:商品名稱(中文或英文)name_alias:關鍵欄位,儲存對應拼音。中文存拼音,英文存英文使用 AJAX 技術,同時查詢 name 與 name_alias 兩欄位:
SELECT id, name FROM item_t
WHERE name LIKE '%keyword%' OR name_alias LIKE '%keyword%'
註:實際輸出可能需進一步處理以匹配顯示格式。推測 Joyo 可能額外儲存用戶輸入關鍵字以優化查詢,但核心仍離不開拼音欄位比對。
Google 不太可能用傳統關聯式資料庫(SQL Server/Oracle)儲存此類資料,因不利查詢效能。name_alias 需人工輸入拼音成本過高,唯一可行的是自動處理:將每個漢字拼音提取(類似輸入法原理),建立索引支援前綴匹配。
不詳述 AJAX 使用細節與中文輸出編碼處理,屬基礎知識範疇。