DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁SEO優化 >> SEO優化集錦 >> 電商搜索引擎的架構設計和性能優化
電商搜索引擎的架構設計和性能優化
編輯:SEO優化集錦     

電商搜索引擎的特點

眾所周知,標准的搜索引擎主要分成三個大的部分,第一步是爬蟲系統,第二步是數據分析,第三步才是檢索結果。

首先,電商的搜索引擎並沒有爬蟲系統,因為所有的數據都是結構化的,一般都是微軟的數據庫或者 Oracle 的數據庫,所以不用像百度一樣用「爬蟲」去不斷去別的網站找內容,當然,電商其實也有自己的「爬蟲」系統,一般都是抓取友商的價格,再對自己進行調整。

第二點,就是電商搜索引擎的過濾功能其實比搜索功能要常用。甚至大於搜索本身。什麼是過濾功能?一般我們網站買東西的時候,搜了一個關健詞,比如尿不濕,然後所有相關品牌或者其他分類的選擇就會呈現在我們面前。對百度而言,搜什麼詞就是什麼詞,如果是新聞的話,可能在時間上會有一個過濾的選項。

第三點,電商搜索引擎支持各種維度的排序,包括支持好評、銷量、評論、價格等屬性的排序。而且對數據的實時性的要求非常高。對一般的搜索引擎,只有非常重要的網站,比如一些重量級的門戶網站,百度的收錄是非常快的,但是對那些流量很小的網站,可能一個月才會爬一次。電商搜索對數據的實時性要求主要體現在價格和庫存兩個方面。

電商搜索引擎另一個特點就是不能丟品,比如我們在淘寶、天貓開了個店鋪,然後好不容易搞了一次活動,但是卻搜不到了,這是無法忍受的。除此之外,電商搜索引擎與推薦系統和廣告系統是相互融合的,因為搜素引擎對流量的貢獻是最大的,所以大家都希望把廣告系統能跟其融合。當然,還有一點非常重要,就是要保證絕對的高可用,而且不能宕機。

電商搜索引擎的架構

因為電商搜索引跟一般的搜索引擎區別很大,所以在架構的設計上也獨具特色。

首先,搜索引擎的實現方式有很多種,有谷歌、百度、搜狗這種非常大的公司,也有京東、淘寶、當當這樣的電商搜索引擎,很多中小型的電商可能更喜歡用一個開源的搜索引擎。所以總的來說,主要包括以下這幾種方式:

電商搜索引擎 搜索引擎優化 電商網站優化 性能優化 網站結構優化

第一種是「Lucene+自己封裝」,只用來做檢索,然後封裝,後面所有的 ES,這兩個是完整的解決方案,而且包括索引所有的東西,只需要部署好業務邏輯,然後查找結果就可以了。

第二種就是 Solr,這是一個高性能,采用 Java5 開發,基於 Lucene 的全文搜索服務器。同時對其進行了擴展,提供了比 Lucene 更為豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎。

第三種是 ElasticSearch,這是一個基於 Lucene 的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基於 RESTful web 接口。Elasticsearch 是用 Java 開發的,並作為 Apache 許可條款下的開放源碼發布,目前使用的也非常多。

這裡提一下,當當的搜索引擎是自己實現的,。現在,新興的互聯網公司大部分都是使用第一種或者第二種,數據量比較大的一般采用第三種。

電商搜索引擎標配模塊

電商搜索引擎 搜索引擎優化 電商網站優化 性能優化 網站結構優化

接下來我想講一下,如果我們自己做一個搜索引擎的話需要實現哪些功能(上圖是電商搜索引擎的標准模塊),其實不止是電商搜索引擎,除了通搜的搜索引擎,其他的搜索引擎也是使用這樣的標配。

電商搜索引擎 搜索引擎優化 電商網站優化 性能優化 網站結構優化

對檢索模塊而言,首先是對用戶的意圖進行分析,根據用戶的搜索詞來進行純算法的實現。比如用戶的搜索詞是「黑包包」,其實用戶的本意就是買一個黑色的包,但是這個「包」可以跟別的詞組合在一起,甚至在搜索結果中會出現「包子」。所以,這就需要 query 分析系統來做,告訴檢索系統,你需要主要在服裝鞋帽中的分類去找,而不是生鮮食品類。

設計到技術層面,當當網使用的是 C++。如果構建一個性能好的系統,一些老一點的公司,大家都是在使用 C++ 或者是 C 語言。不止是當當網,其實很多公司都是使用的 C 或者 C++ 實現的搜索引擎。

數據更新模塊

電商搜索引擎 搜索引擎優化 電商網站優化 性能優化 網站結構優化

第二個模塊就是數據更新模塊,該模塊負責生成索引。而數據中心模塊主要做的事情,就是將原始的結構化數據,變成一個可供檢索系統使用的搜索數據庫。當然,數據更新模塊和檢索模塊是分開還是合並呢?其實從本質上講,都是一堆代碼,完全可以寫在一個進程裡。當然,也可以分開,通過網絡往外輸入,各自都有道理。第一種是簡單粗暴型的,如果是普通電商,像生鮮電商,數據量不大,實時性、季節性很強,就可以把兩個系統用一個進程來完成。但是如果到了百萬、千萬甚至上億級別的話,就不可能部在一台機器上了。

電商搜索引擎 搜索引擎優化 電商網站優化 性能優化 網站結構優化

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved