時間:2023-03-08 00:46:01 | 來源:電子商務(wù)
時間:2023-03-08 00:46:01 來源:電子商務(wù)
搜索引擎工作過程非常復(fù)雜,我們簡單介紹搜索引擎是怎樣實現(xiàn)網(wǎng)頁排名的。這里介紹的相對于真正的搜索引擎技術(shù)來說只是皮毛,不過對SEO 人員已經(jīng)足夠用了。
搜索引擎的工作過程大體上可以分成三個階段:
1) 爬行和抓取 – 搜索引擎蜘蛛通過跟蹤鏈接訪問網(wǎng)頁,獲得頁面HTML 代碼存入數(shù)據(jù)庫。
2) 預(yù)處理 - 索引程序?qū)ψト淼捻撁鏀?shù)據(jù)進行文字提取、中文分詞、索引等處理,以備排名程序調(diào)用。
3) 排名 - 用戶輸入關(guān)鍵詞后,排名程序調(diào)用索引庫數(shù)據(jù),計算相關(guān)性,然后按一定格式生成搜索結(jié)果頁面。
爬行和抓取
爬行和抓取是搜索引擎工作的第一步,完成數(shù)據(jù)收集的任務(wù)。
蜘蛛
搜索引擎用來爬行和訪問頁面的程序被稱為蜘蛛(spider),也稱為機器人(bot)。搜索引擎蜘蛛訪問網(wǎng)站頁面時類似于普通用戶使 用的瀏覽器。蜘蛛程序發(fā)出頁面訪問請求后,服務(wù)器返回HTML 代碼,蜘蛛程序把收到的代碼存入原始頁面數(shù)據(jù)庫。搜索引擎為了提高爬行和抓取速度,都使用多個蜘蛛并發(fā)分布爬行。蜘蛛訪問任何一個網(wǎng)站時,都會先訪問網(wǎng)站 根目錄下的robots.txt 文件。如果robots.txt 文件禁止搜索引擎抓取某些文件或目錄,蜘蛛將遵守協(xié)議,不抓取被禁止的網(wǎng)址。
跟蹤鏈接
為了抓取網(wǎng)上盡量多的頁面,搜索引擎蜘蛛會跟蹤頁面上的鏈接,從一個頁面爬到下一個頁面,就好像蜘蛛在蜘蛛網(wǎng)上爬行那樣,這也就是搜索 引擎蜘蛛這個名稱的由來。整個互聯(lián)網(wǎng)是由相互鏈接的網(wǎng)站及頁面組成的。從理論上說,蜘蛛從任何一個頁面出發(fā),順著鏈接都可以爬行到網(wǎng)上的所有頁面。當(dāng)然, 由于網(wǎng)站及頁面鏈接結(jié)構(gòu)異常復(fù)雜,蜘蛛需要采取一定的爬行策略才能遍歷網(wǎng)上所有頁面。
最簡單的爬行遍歷策略分為兩種,一是深度優(yōu)先,二是廣度優(yōu)先。
所謂深度優(yōu)先指的是蜘蛛沿著發(fā)現(xiàn)的鏈接一直向前爬行,直到前面再也沒有其他鏈接,然后返回到第一個頁面,沿著另一個鏈接再一直往前爬行。
廣度優(yōu)先是指蜘蛛在一個頁面上發(fā)現(xiàn)多個鏈接時,不是順著一個鏈接一直向前,而是把頁面上所有第一層鏈接都爬一遍,然后 再沿著第二層頁面上發(fā)現(xiàn)的鏈接爬向第三層頁面。從理論上說,無論是深度優(yōu)先還是廣度優(yōu)先,只要給蜘蛛足夠的時間,都能爬完整個互聯(lián)網(wǎng)。在實際工作中,蜘蛛 的帶寬資源、時間都不是無限的,也不可能爬完所有頁面。實際上最大的搜索引擎也只是爬行和收錄了互聯(lián)網(wǎng)的一小部分。
深度優(yōu)先和廣度優(yōu)先通常是混合使用的,這樣既可以照顧到盡量多的網(wǎng)站(廣度優(yōu)先),也能照顧到一部分網(wǎng)站的內(nèi)頁(深度優(yōu)先)。
預(yù)處理
提取文字
現(xiàn)在的搜索引擎還是以文字內(nèi)容為基礎(chǔ)。蜘蛛抓取到的頁面中的HTML 代碼,除了用戶在瀏覽器上可以看到的可見文字外,還包含了大量的HTML 格式標(biāo)簽、Javascript 程序等無法用于排名的內(nèi)容。搜索引擎預(yù)處理首先要做的就是從HTML 文件中去除標(biāo)簽、程序,提取出可以用于排名處理的網(wǎng)頁面文字內(nèi)容。除了可見文字,搜索引擎也會提取出一些特殊的包含文字信息的代碼,如Meta 標(biāo)簽中的文字,圖片替代文字,F(xiàn)lash 文件的替代文字,鏈接錨文字等。
中文分詞
分詞是中文搜索引擎特有的步驟。搜索引擎存儲和處理頁面,以及用戶搜索都是以詞為基礎(chǔ)。英文等語言單詞與單詞之間有空格分隔,搜索引擎 索引程序可以直接把句子劃分為單詞的集合。而中文詞與詞之間沒有任何分隔符,一個句子中的所有字和詞都是連在一起的。搜索引擎必須首先分辨哪幾個字組成一 個詞,哪些字本身就是一個詞。比如“減肥方法”將被分詞為“減肥”和“方法”兩個詞。
中文分詞方法基本上有兩種,一是基于詞典匹配,另一個是基于統(tǒng)計。
基于詞典匹配的方法是指,將待分析的一段漢字與一個事先造好的詞典中的詞條進行匹配,在待分析漢字串中掃描到詞典中已 有的詞條則匹配成功,或者說切分出一個單詞。按照掃描方向,基于詞典的匹配法可以分為正向匹配和逆向匹配。按照匹配長度優(yōu)先級的不同,又可以分為最大匹配 和最小匹配。將掃描方向和長度優(yōu)先混合,又可以產(chǎn)生正向最大匹配、逆向最大匹配等不同方法。詞典匹配方法計算簡單,其準(zhǔn)確度很大程度上取決于詞典的完整性 和更新情況。
基于統(tǒng)計的分詞方法指的是分析大量文字樣本,計算出字與字相鄰出現(xiàn)的統(tǒng)計概率,幾個字相鄰出現(xiàn)越多,就越可能形成一個 單詞?;诮y(tǒng)計的方法優(yōu)勢是對新出現(xiàn)的詞反應(yīng)更快速,也有利于消除歧義。基于詞典匹配和統(tǒng)計的兩種分詞方法各有優(yōu)劣,實際使用中的分詞系統(tǒng)都是混合使用兩 種方法,達到快速高效,又能識別生詞、新詞,消除歧義。
搜索引擎對頁面的分詞取決于詞庫的規(guī)模、準(zhǔn)確性和分詞算法的好壞,而不是取決于頁面本身如何,所以SEO 人員對分詞所能做的很少。唯一能做的是在頁面上用某種形式提示搜索引擎,某幾個字應(yīng)該被當(dāng)作一個詞處理,尤其是可能產(chǎn)生歧義的時候,比如在頁面標(biāo)題、h1 標(biāo)簽以及黑體中出現(xiàn)關(guān)鍵詞。如果頁面是關(guān)于“和服”的內(nèi)容,那么可以把“和服”這兩個字特意標(biāo)為黑體。如果頁面是關(guān)于“化妝和服裝”,可以把“服裝”兩個字標(biāo)為黑體。這樣,搜索引擎對頁面進行分析時就知道標(biāo)為黑體的應(yīng)該是一個詞。
去停止詞
無論英文中文,頁面內(nèi)容中都會有一些出現(xiàn)頻率很高,卻對內(nèi)容沒有任何影響的詞,如“的”,“地”,“得”之類的助詞,“啊”,“哈”, “呀”之類的感嘆詞,“從而”,“以”,“卻”之類的介詞。這些詞被稱為停止詞,因為它們對頁面主要意思沒什么影響。英文中的常見停止詞如 the,a,an,to,of 等。搜索引擎在索引頁面之前會去掉這些停止詞,使索引數(shù)據(jù)主題更為突出,減少無謂的計算量。
消除噪聲
絕大部分頁面上還有一部分內(nèi)容對頁面主題也沒有什么貢獻,比如版權(quán)聲明文字、導(dǎo)航條、廣告等。以常見的博客導(dǎo)航為例,幾乎每個博客頁面 上都會出現(xiàn)文章分類、歷史存檔等導(dǎo)航內(nèi)容,但是這些頁面本身與“分類”、“歷史”這些詞都沒有任何關(guān)系。用戶搜索“歷史”,“分類”這些關(guān)鍵詞時僅僅因為 頁面上有這些詞出現(xiàn)而返回博客帖子是毫無意義的,完全不相關(guān)。
所以這些區(qū)塊都屬于噪聲,對頁面主題只能起到分散作用。搜索引擎需要識別并消除這些噪聲,排 名時不使用噪聲內(nèi)容。消噪的基本方法是根據(jù)HTML 標(biāo)簽對頁面分塊,區(qū)分出頁頭、導(dǎo)航、正文、頁腳、廣告等區(qū)域,在網(wǎng)站上大量重復(fù)出現(xiàn)的區(qū)塊往往屬于噪聲。對頁面進行消噪后,剩下的才是頁面主體內(nèi)容。
去重
搜索引擎還需要對頁面進行去重處理。同一篇文章經(jīng)常會重復(fù)出現(xiàn)在不同網(wǎng)站以及同一個網(wǎng)站的不同網(wǎng)址上,搜索引擎并不喜歡這種重復(fù)性的內(nèi) 容。用戶搜索時,如果在前兩頁看到的都是來自不同網(wǎng)站的同一篇文章,用戶體驗就太差了,雖然都是內(nèi)容相關(guān)的。搜索引擎希望只返回相同文章中的一篇,所以在 進行索引前還需要識別和刪除重復(fù)內(nèi)容,這個過程就稱為去重。去重的基本方法是對頁面特征關(guān)鍵詞計算指紋,也就是說從頁面主體內(nèi)容中選取最有代表性的一部分 關(guān)鍵詞(經(jīng)常是出現(xiàn)頻率最高的關(guān)鍵詞),然后計算這些關(guān)鍵詞的數(shù)字指紋。
這里的關(guān)鍵詞選取是在分詞、去停止詞、消噪之后。實驗表明,通常選取10 個特征關(guān)鍵詞就可以達到比較高的計算準(zhǔn)確性,再選取更多詞對去重準(zhǔn)確性提高的貢獻也就不大了。了解了搜索引擎的去重算法,SEO 人員就應(yīng)該知道簡單地增加“的,地,得”、調(diào)換段落順序這種所謂偽原創(chuàng),并不能逃過搜索引擎的去重算法,因為這樣的操作無法改變文章的特征關(guān)鍵詞。而且搜 索引擎的去重算法很可能不止于頁面級別,而是進行到段落級別,混合不同文章、交叉調(diào)換段落順序也不能使轉(zhuǎn)載和抄襲變成原創(chuàng)。
正向索引也可以簡稱為索引。
經(jīng)過文字提取、分詞、消噪、去重后,搜索引擎得到的就是獨特的、能反映頁面主體內(nèi)容的、以詞為單位的內(nèi)容。接下來搜索引擎索引程序就可以提取關(guān)鍵詞,按照 分詞程序劃分好的詞,把頁面轉(zhuǎn)換為一個關(guān)鍵詞組成的集合,同時記錄每一個關(guān)鍵詞在頁面上的出現(xiàn)頻率、出現(xiàn)次數(shù)、格式(如出現(xiàn)在標(biāo)題標(biāo)簽、黑體、H 標(biāo)簽、錨文字等)、位置(如頁面第一段文字等)。這樣,每一個頁面都可以記錄為一串關(guān)鍵詞集合,其中每個關(guān)鍵詞的詞頻、格式、位置等權(quán)重信息也都記錄在 案。
倒排索引
正向索引還不能直接用于排名。假設(shè)用戶搜索關(guān)鍵詞2,如果只存在正向索引的話,排名程序需要掃描所有索引庫中的文件,找出包含關(guān)鍵詞2 的文件,再進行相關(guān)性計算。這樣的計算量無法滿足實時返回排名結(jié)果的要求。所以搜索引擎會將正向索引數(shù)據(jù)庫重新構(gòu)造為倒排索引,把文件對應(yīng)到關(guān)鍵詞的映射 轉(zhuǎn)換為關(guān)鍵詞到文件的映射。在倒排索引中關(guān)鍵詞是主鍵,每個關(guān)鍵詞都對應(yīng)著一系列文件,這些文件中都出現(xiàn)了這個關(guān)鍵詞。這樣當(dāng)用戶搜索某個關(guān)鍵詞時,排序 程序在倒排索引中定位到這個關(guān)鍵詞,就可以馬上找出所有包含這個關(guān)鍵詞的文件。
鏈接關(guān)系計算
鏈接關(guān)系計算也是預(yù)處理中很重要的一部分?,F(xiàn)在所有的主流搜索引擎排名因素中都包含網(wǎng)頁之間的鏈接流動信息。搜索引擎在抓取頁面內(nèi)容 后,必須事前計算出頁面上有哪些鏈接指向哪些其他頁面?每個頁面有哪些導(dǎo)入鏈接?鏈接使用了什么錨文字?這些復(fù)雜的鏈接指向關(guān)系形成了網(wǎng)站和頁面的鏈接權(quán) 重。Google PR 值就是這種鏈接關(guān)系的最主要體現(xiàn)之一。其他搜索引擎也都進行類似計算,雖然他們并不稱之為PR。
特殊文件處理
除了HTML 文件外,搜索引擎通常還能抓取和索引以文字為基礎(chǔ)的多種文件類型,如PDF、Word、WPS、XLS、PPT、TXT 文件等。我們在搜索結(jié)果中也經(jīng)常會看到這些文件類型。但目前的搜索引擎還不能處理圖片、視頻、Flash 這類非文字內(nèi)容,也不能執(zhí)行腳本和程序。雖然搜索引擎在識別圖片以及從Flash 中提取文字內(nèi)容方面有些進步,不過距離直接靠讀取圖片、視頻、Flash 內(nèi)容返回結(jié)果的目標(biāo)還很遠。對圖片、視頻內(nèi)容的排名還往往是靠與之相關(guān)的文字內(nèi)容,詳細情況可以參考后面的整合搜索部分。
排名
經(jīng)過搜索引擎蜘蛛抓取頁面,索引程序計算得到倒排索引后,搜索引擎就準(zhǔn)備好可以隨時處理用戶搜索了。用戶在搜索框填入關(guān)鍵詞后,排名程序調(diào)用索引庫數(shù)據(jù),計算排名顯示給用戶,排名過程是與用戶直接互動的。
搜索詞處理
搜索引擎接收到用戶輸入的搜索詞后,需要對搜索詞做一些處理,才能進入排名過程。搜索詞處理包括幾方面:
中文分詞
與頁面索引時一樣,搜索詞也必須進行中文分詞,將查詢字符串轉(zhuǎn)換為以詞為基礎(chǔ)的關(guān)鍵詞組合。分詞原理與頁面分詞相同。
去停止詞
和索引時一樣,搜索引擎也需要把搜索詞中的停止詞去掉,最大限度地提高排名相關(guān)性及效率。
指令處理
查詢詞完成分詞后,搜索引擎的缺省處理方式是在關(guān)鍵詞之間使用“與”邏輯。也就是說用戶搜索“減肥方法”時,程序分詞為“減肥”和“方 法”兩個詞,搜索引擎排序時缺省認為,用戶尋找的是既包含“減肥”,也包含“方法”的頁面。只包含“減肥”不包含“方法”,或者只包含“方法”不包含“減 肥”的頁面,被認為是不符合搜索條件的。當(dāng)然,這只是極為簡化的為了說明原理的說法,實際上我們還是會看到只包含一部分關(guān)鍵詞的搜索結(jié)果。另外用戶輸入的 查詢詞還可能包含一些高級搜索指令,如加號、減號等,搜索引擎都需要做出識別和相應(yīng)處理。
文件匹配
搜索詞經(jīng)過處理后,搜索引擎得到的是以詞為基礎(chǔ)的關(guān)鍵詞集合。文件匹配階段就是找出含有所有關(guān)鍵詞的文件。在索引部分提到的倒排索引使得文件匹配能夠快速完成。
初始子集的選擇
找到包含所有關(guān)鍵詞的匹配文件后,還不能進行相關(guān)性計算,因為找到的文件經(jīng)常會有幾十萬幾百萬,甚至上千萬個。要對這么多文件實時進行 相關(guān)性計算,需要的時間還是比較長。實際上用戶并不需要知道所有匹配的幾十萬幾百萬個頁面,絕大部分用戶只會查看前兩頁,也就是前二十個結(jié)果。搜索引擎也 并不需要計算這么多頁面的相關(guān)性,而只要計算最重要的一部分頁面就可以了。常用搜索引擎的人都會注意到,搜索結(jié)果頁面通常最多只顯示一百個。用戶點擊搜索 結(jié)果頁面底部的“下一頁”鏈接,最多也只能看到第一百頁,也就是一千個搜索結(jié)果。百度則通常返回76 頁結(jié)果。
相關(guān)性計算
選出初始子集后,對子集中的頁面計算關(guān)鍵詞相關(guān)性。計算相關(guān)性是排名過程中最重要的一步。相關(guān)性計算是搜索引擎算法中最令SEO 感興趣的部分。影響相關(guān)性的主要因素包括幾方面。
關(guān)鍵詞常用程度
經(jīng)過分詞后的多個關(guān)鍵詞,對整個搜索字符串的意義貢獻并不相同。越常用的詞對搜索詞的意義貢獻越小,越不常用的詞對意義貢獻越大。舉個 例子,假設(shè)用戶輸入的搜索詞是“我們冥王星”。“我們”這個詞常用程度非常高,在很多頁面上會出現(xiàn),它對“我們冥王星”這個搜索詞的辨識程度和意義相關(guān)度 貢獻就很小。找出那些包含“我們”這個詞的頁面,對搜索排名相關(guān)性幾乎沒有什么影響,有太多頁面包含“我們”這個詞。而“冥王星”這個詞常用程度就比較 低,對“我們冥王星”這個搜索詞的意義貢獻要大得多。那些包含“冥王星”這個詞的頁面,對“我們冥王星”這個搜索詞會更為相關(guān)。常用詞的極致就是停止詞, 對頁面意義完全沒有影響。
所以搜索引擎對搜索詞串中的關(guān)鍵詞并不是一視同仁地處理,而是根據(jù)常用程度進行加權(quán)。不常用的詞加權(quán)系數(shù)高,常用詞加權(quán)系數(shù)低, 排名算法對不常用的詞給予更多關(guān)注。我們假設(shè)A、B 兩個頁面都各出現(xiàn)“我們”及“冥王星”兩個詞。但是“我們”這個詞在A 頁面出現(xiàn)于普通文字,“冥王星”這個詞在A 頁面出現(xiàn)于標(biāo)題標(biāo)簽中。B 頁面正相反,“我們”出現(xiàn)在標(biāo)題標(biāo)簽中,而“冥王星”出現(xiàn)在普通文字中。那么針對“我們冥王星”這個搜索詞,A 頁面將更相關(guān)。
詞頻及密度
一般認為在沒有關(guān)鍵詞堆積的情況下,搜索詞在頁面中出現(xiàn)的次數(shù)多,密度比較高,說明頁面與搜索詞越相關(guān)。當(dāng)然這只是一個大致規(guī)律,實際 情況未必如此,所以相關(guān)性計算還有其他因素。出現(xiàn)頻率及密度只是因素的一部分,而且重要程度越來越低。關(guān)鍵詞位置及形式像在索引部分中提到的,頁面關(guān)鍵詞 出現(xiàn)的格式和位置都被記錄在索引庫中。關(guān)鍵詞出現(xiàn)在比較重要位置,如標(biāo)題標(biāo)簽、黑體、H1 等,說明頁面與關(guān)鍵詞越相關(guān)。這一部分就是頁面SEO所要解決的。
關(guān)鍵詞距離
切分后的關(guān)鍵詞完整匹配出現(xiàn),說明與搜索詞最相關(guān)。比如搜索“減肥方法”時,頁面上連續(xù)完整出現(xiàn)“減肥方法”四個字是最相關(guān)的。如果“減肥”和“方法”兩個詞沒有連續(xù)匹配出現(xiàn),出現(xiàn)的距離近一些,也被搜索引擎認為相關(guān)性稍微大一些。
鏈接分析及頁面權(quán)重
除了頁面本身的因素,頁面之間的鏈接和權(quán)重關(guān)系也影響關(guān)鍵詞的相關(guān)性,其中最重要的是錨文字。頁面有越多以搜索詞為錨文字的導(dǎo)入鏈接, 說明頁面的相關(guān)性越強。鏈接分析還包括了鏈接源頁面本身的主題,錨文字周圍的文字等。排名過濾及調(diào)整選出匹配文件子集、計算相關(guān)性后,大體排名就已經(jīng)確定 了。之后搜索引擎還可能有一些過濾算法,對排名進行輕微調(diào)整,其中最主要的過濾就是施加懲罰。一些有作弊嫌疑的頁面,雖然按照正常的權(quán)重和相關(guān)性計算排到 前面,但搜索引擎的懲罰算法卻可能在最后一步把這些頁面調(diào)到后面去。典型的例子是百度的11 位,Google 的負6,負30,負950 等算法。
排名顯示
所有排名確定后,排名程序調(diào)用原始頁面的標(biāo)題標(biāo)簽、說明標(biāo)簽、快照日期等數(shù)據(jù)顯示在頁面上。有時搜索引擎需要動態(tài)生成頁面摘要,而不是調(diào)用頁面本身的說明標(biāo)簽。
搜索緩存
用戶搜索的關(guān)鍵詞有很大一部分是重復(fù)的。按照2/8 定律,20%的搜索詞占到了總搜索次數(shù)的80%。按照長尾理論,最常見的搜索詞沒有占到80%那么多,但通常也有一個比較粗大的頭部,很少一部分搜索詞占 到了所有搜索次數(shù)的很大一部分。尤其是有熱門新聞發(fā)生時,每天可能有幾百萬人搜索完全相同的關(guān)鍵詞。如果每次搜索都重新處理排名可以說是很大的浪費。
搜索引擎會把最常見的搜索詞存入緩存,用戶搜索時直接從緩存中調(diào)用,而不必經(jīng)過文件匹配和相關(guān)性計算,大大提高排名效率,降低搜索反應(yīng)時間。查詢及點擊日志搜 索用戶的IP 地址,搜索的關(guān)鍵詞,搜索時間以及點擊了哪些結(jié)果頁面,搜索引擎都記錄形成日志。這些日志文件中的數(shù)據(jù)對搜索引擎判斷搜索結(jié)果質(zhì)量,調(diào)整搜索算法,預(yù)期搜 索趨勢等都有重要意義。
上面我們簡單介紹了搜索引擎的工作過程。當(dāng)然實際搜索引擎的工作步驟與算法是非常非常復(fù)雜的。上面的說明很簡單,但其中有很多技術(shù)難點。搜索引擎還在不斷 優(yōu)化算法,優(yōu)化數(shù)據(jù)庫格式。不同搜索引擎的工作步驟也會有差異。但大致上所有主流搜索引擎的基本工作原理都是如此,在過去幾年以及可以預(yù)期的未來幾年,都不會有實質(zhì)性改變。
本文由鄭州腦癱醫(yī)院首家原創(chuàng),A5首發(fā),希望對各位站長有所幫助,記得轉(zhuǎn)載時留下本文供稿站長信息,歡迎轉(zhuǎn)摘。
關(guān)鍵詞:過程,工作,索引
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。