- 搜索架構之道:App中的搜索系統設計與優化實踐
- 劉俊啟
- 739字
- 2025-01-03 16:12:46
1.1.5 搜索異步化:優化搜索核心指標
NA化的搜索結果頁在通用性及擴展性方面存在不足。搜索業務的歷史積累較多,從面向瀏覽器服務進化為面向NA化服務,不是做幾個NA化的場景這么簡單,還需要考慮瀏覽器的生態。NA化的工作告一個段落后,要做的是優化用戶在結果頁上的體驗,目標是優化頁面的加載時長。
仔細研究搜索結果頁會發現,用戶在搜索不同的關鍵字時,頁面中總會有一些資源是相同的,這些相同的資源與結果頁的架構及布局相關,屬于基礎資源,不受具體的關鍵字影響。也就是說,如果提前加載這些基礎資源,那么在用戶發起搜索時,僅需加載與關鍵字相關的資源,這樣就可以減少頁面加載時間,實現優化結果頁加載時長的目標。
團隊的前端人員開發了一套異步搜索框架,提前對結果頁的基礎資源進行加載、解析、渲染。當有搜索請求時,由異步搜索框架實現對關鍵字相關資源的加載。但是,應用這套框架的前提是客戶端需要提前創建一個瀏覽內核,預先加載這個異步搜索框架,當有搜索需求時,調用異步框架的接口,發起異步搜索。異步搜索框架有著不同的狀態,也會出現異常的情況,當異步框架不可用的時候,客戶端則使用原加載方案進行搜索。異步搜索流程如圖1-6所示。

圖1-6 異步搜索流程
這時候的客戶端的搜索框架依然采用單瀏覽內核的方式承載內容(單瀏覽內核管理框架),在App啟動后先加載異步搜索框架。但單瀏覽內核架構有一個局限,如圖1-7所示,異步搜索框架或其他頁面只能加載一個。當進入落地頁時,瀏覽內核中加載的是落地頁,而不是異步搜索框架,這時用戶再次發起搜索就只能采用同步的方式。由此可見,異步搜索的覆蓋率沒有達到預期。

圖1-7 異步搜索框架被落地頁覆蓋
這個階段的端與云的協同優化,不僅關注功能的構建,還開始兼顧核心指標的優化。關于指標優化的更多內容,將在第8章和第9章詳細介紹。