第43章 搜尋引擎(第1/2頁)
章節報錯
搜尋引擎,顧名思義,便是一種用於搜尋資訊而產生的工具。一般解釋而言,便是透過使用者的需求,和一定的演算法,將使用者輸入的關鍵詞與網際網路上現存的資訊進行匹配,並按照相關度和時間順序,將符合要求的資訊羅列在使用者的眼前。
搜尋引擎這門生意講究的是個先來後到。如果能在最早的時候將知名論壇和網站的內容全部爬取,那就會在使用者佔有率上佔盡優勢。
要知道在這個時間點,日後馳名全球的尋他公司和布穀公司還在孃胎裡,呀唬公司的搜尋引擎雖然已經誕生,但其底層技術依舊是依靠人工存放網站目錄,可謂是效率極其低下。
現在已經有網際網路資訊爆炸的趨勢了,隨著資訊越來越多,人工處理流程必將被淘汰,而王向中設想的,則是搶在市場最前列,將新一代的搜尋引擎提前面世。
實際上做一個搜尋引擎並沒有看上去那麼輕鬆。首先是程式碼問題,這個年代網頁技術還停留在Web1.0(網際網路1.0)的時代,先暫且不提Ajax(Asynchronous Javascript And XML,非同步JavaScript和XML)這種動態頁面重新整理機制,就連JavaScript(一種Web頁面指令碼語言)都還尚未出現。
還好Windows公司相當強大,早在1996年釋出了ASP1.0(Active Server Pages,動態伺服器頁面),這也讓王向中不必苦哈哈地用大量C語言進行後端程式碼編寫工作。
接下來就是資料的爬取和儲存問題。這話雖然聽起來很高階,但實際上也就是將資料從別的網站上摘下來,進行索引和關鍵詞分配的簡單加工後儲存的過程。
這個時候Python語言尚還叫ABC語言,很顯然在這個年代使用這個失敗的產品是不太合適的,使用更加成熟的C++也許可以解決一些問題。
將爬蟲模型簡單地鋪開來講,最基礎的爬蟲,便是透過程式直接訪問網頁的原始碼,透過正規表示式匹配出網頁的標題和其具體內容,再接著分析網頁內的超連結所指向的頁面,逐步將整個網站的內容收入囊中。
再接下來便是資料的儲存問題。MySQL(一種關聯式資料庫管理系統)可以完美地代替文字文件進行資料存取,因為它有一項對於搜尋引擎而言重要的功能——索引。
索引可以給一條資料給予定義。舉個最簡單的比方,為了節省空間,圖書館的書一般是縱向擺放,而在每本書的側面上,都寫有書名和作者姓名。
這個書名和作者姓名,就是一本書的“索引”,當你想要找一本書的時候,顯然不可能將每本書都開啟細細查閱一番,這無疑是在浪費時間。而透過書名和作者名,你可以輕鬆地找到自己想要的那本書。
假設一本書是一條資料,那麼透過索引功能,便可以輕鬆地將它從資料庫中調取出來,而不必辛苦地逐行逐字分析書本的內容。
至於資料庫訪問最佳化,還是屬於暫時不必要考慮的問題。這個時代,網際網路上存在的網站還不算太多,不到1TB的硬碟便可以解決問題。
剩下的域名購買、網站報備申請等環節,則就是行政工作了,只要抽個時間便可以將它們全部搞定。
如此估算下來,王向中還需要一臺伺服器,一個小機房用於存放裝置,以及網路費用成本。
按照目前王向中的賺錢速度,想要快速攢到所需要的錢,還需要一些時日。
不過現在他已經可以開始著手程式碼的框架建立了,儘管在當年那個世界,程式碼這一步是最難的事情,然而在王向中身上,程式碼是最簡單的事情……
但凡是不用掏錢的事情,都是最簡單的事情。
短短三天內,電信公司便派了人來,將電話線給拉好了,與此同時,王向中也向蔣紅月借出重金,咬緊牙關買了一部固定電話。
儘管Windows95在這個年代是人類頂級智慧成果之一,但王向中還是愣了好一會,才逐漸熟悉它的操作方式。
在他這個現代人眼裡,這個所謂最先進的系統,等同於是反人類的設計功能也不為過。