咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

搜索引擎的工作(zuò)原理(lǐ)

發表日期:2017-03-15    文章編輯:重慶網站(zhàn)建設小(xiǎo)編    浏覽次數(shù):16    标簽:

   有(yǒu)人(rén)說,搜索引擎技(jì)術(shù)似乎不需要本地化,這一看就是徹底不懂這個(gè)領域的人(rén)講的。當然,實話(huà)說,如果有(yǒu)人(rén)說,google在中文本地化方面做(zuò)得(de)非常好,我是可(kě)以部分同意的,同意的比例可(kě)能會(huì)比google工程師(shī)少(shǎo)一些(xiē)。但(dàn)我相信google工程師(shī)也會(huì)告訴你(nǐ),搜索引擎是需要本地化的。

  今天寫篇科普文,講講搜索引擎的技(jì)術(shù)機理(lǐ)和(hé)市場(chǎng)競争的一些(xiē)特點。當然,作(zuò)為(wèi)從事或有(yǒu)興趣從事流量運營的朋友(yǒu),是可(kě)以用另一個(gè)角度去理(lǐ)解本文。

  搜索引擎的核心技(jì)術(shù)架構,大(dà)體(tǐ)包括以下三塊:第一,是蜘蛛/爬蟲技(jì)術(shù);第二,是索引技(jì)術(shù);第三是查詢展現的技(jì)術(shù); 當然,我不是搜索引擎的架構師(shī),我隻能用比較粗淺的方式來(lái)做(zuò)一個(gè)結構的切分。

  1 蜘蛛,也叫爬蟲,是将互聯網的信息,抓取并存儲的一種技(jì)術(shù)實現。

  搜索引擎的信息收錄,很(hěn)多(duō)不明(míng)所以的人(rén)會(huì)有(yǒu)很(hěn)多(duō)誤解,以為(wèi)是付費收錄,或者有(yǒu)什麽其他特殊的提交技(jì)巧,其實并不是,搜索引擎通(tōng)過互聯網一些(xiē)公開(kāi)知名的網站(zhàn),抓取內(nèi)容,并分析其中的鏈接,然後有(yǒu)選擇的抓取鏈接裏的內(nèi)容,然後再分析其中的鏈接,以此類推,通(tōng)過有(yǒu)限的入口,基于彼此鏈接,形成強大(dà)的信息抓取能力。

  有(yǒu)些(xiē)搜索引擎本身也有(yǒu)鏈接提交入口,但(dàn)基本上(shàng),不是主要的收錄入口,不過作(zuò)為(wèi)創業者,建議了解一下相關信息,百度,google都有(yǒu)站(zhàn)長平台和(hé)管理(lǐ)後台,這裏很(hěn)多(duō)內(nèi)容是需要非常非常認真的對待的。

  反過來(lái)說,在這樣的原理(lǐ)下,一個(gè)網站(zhàn),隻有(yǒu)被其他網站(zhàn)所鏈接,才有(yǒu)機會(huì)被搜索引擎抓取。如果這個(gè)網站(zhàn)沒有(yǒu)外部鏈接,或者外部鏈接在搜索引擎中被認為(wèi)是垃圾或無效鏈接,那(nà)麽搜索引擎可(kě)能就不抓取他的頁面。

  分析和(hé)判斷搜索引擎是否抓取了你(nǐ)的頁面,或者什麽時(shí)候抓取你(nǐ)的頁面,隻能通(tōng)過服務器(qì)上(shàng)的訪問日志(zhì)來(lái)查詢,如果是cdn就比較麻煩。 而基于網站(zhàn)嵌入代碼的方式,不論是cnzz,百度統計(jì),還(hái)是google analytics,都無法獲得(de)蜘蛛抓取的信息,因為(wèi)這些(xiē)信息不會(huì)觸發這些(xiē)代碼的執行(xíng)。

  一個(gè)比較推薦的日志(zhì)分析軟件是awstats

  在十多(duō)年前,分析百度蜘蛛抓取軌迹和(hé)更新策略,是很(hěn)多(duō)草根站(zhàn)長每日必做(zuò)的功課,比如現在身價幾十億的知名80後上(shàng)市公司董事長,當年在某站(zhàn)長論壇就是以此準确的分析判斷而封神,很(hěn)年輕的時(shí)候就已經是站(zhàn)長圈的一代偶像。

  但(dàn)關于蜘蛛的話(huà)題,并不隻基于鏈接抓取這麽簡單,延伸來(lái)說

  第一,網站(zhàn)擁有(yǒu)者可(kě)以選擇是否允許蜘蛛抓取,有(yǒu)一個(gè)robots.txt的文件是來(lái)控制(zhì)這個(gè)的。

  一個(gè)經典案例是 https://www.taobao.com/robots.txt

  你(nǐ)會(huì)看到,淘寶至今仍有(yǒu)關鍵目錄不對百度蜘蛛開(kāi)放,但(dàn)對google開(kāi)放。

  另一個(gè)經典案例是 http://www.baidu.com/robots.txt

  你(nǐ)看出什麽了?你(nǐ)可(kě)能什麽都沒看出來(lái),我提醒一句,百度實質上(shàng)全面禁止了360的蜘蛛抓取。

  但(dàn)這個(gè)協議隻是約定俗成,實際上(shàng)并沒有(yǒu)強制(zhì)約束力,所以,你(nǐ)們猜猜,360遵守了百度的蜘蛛抓取禁止麽?

  第二,最早抓取是基于網站(zhàn)彼此的鏈接為(wèi)入口,但(dàn)實際上(shàng),并不能肯定的說,有(yǒu)可(kě)能存在其他抓取入口,比如說,

  客戶端插件或浏覽器(qì), 免費網站(zhàn)統計(jì)系統的嵌入式代碼。

  會(huì)不會(huì)成為(wèi)蜘蛛抓取的入口,我隻能說,有(yǒu)這個(gè)可(kě)能。

  所以我跟很(hěn)多(duō)創業者說,中國做(zuò)網站(zhàn),放百度統計(jì),海外做(zuò)網站(zhàn),放google analytics,是否會(huì)增加搜索引擎對你(nǐ)網站(zhàn)的收錄?我隻能說猜測,有(yǒu)這個(gè)可(kě)能。

  第三,無法被抓取的信息

  有(yǒu)些(xiē)網站(zhàn)的內(nèi)容鏈接,用一些(xiē)javascript特殊效果完成,比如浮動的菜單等等,這種連接,有(yǒu)可(kě)能搜索引擎的蜘蛛程序不識别,當然,我隻是說有(yǒu)可(kě)能,現在搜索引擎比以前聰明(míng),十多(duō)年前很(hěn)多(duō)特效鏈接是不識别的,現在會(huì)好一些(xiē)。

  需要登錄,需要注冊才能訪問的頁面,蜘蛛是無法進入的,也就是無法收錄。

  有(yǒu)些(xiē)網站(zhàn)會(huì)給搜索特殊頁面,就是蜘蛛來(lái)能看到內(nèi)容(蜘蛛訪問會(huì)有(yǒu)特殊的客戶端标記,服務端識别和(hé)處理(lǐ)并不複雜),人(rén)來(lái)了要登錄才能看,但(dàn)這樣做(zuò)其實是違反了收錄協議(需要人(rén)和(hé)蜘蛛看到的同樣的內(nèi)容,這是絕大(dà)部分搜索引擎的收錄協議),有(yǒu)可(kě)能遭到搜索引擎處罰。

  所以一個(gè)社區(qū)要想通(tōng)過搜索引擎帶來(lái)免費用戶,必須讓訪客能看到內(nèi)容,哪怕是部分內(nèi)容。

  帶很(hěn)多(duō)複雜參數(shù)的內(nèi)容鏈接url,有(yǒu)可(kě)能被蜘蛛當作(zuò)重複頁面,拒絕收錄。

  很(hěn)多(duō)動态頁面是一個(gè)腳本程序帶參數(shù)體(tǐ)現的,但(dàn)蜘蛛發現同一個(gè)腳本有(yǒu)大(dà)量參數(shù)的網頁,有(yǒu)時(shí)候會(huì)給該網頁的價值評估帶來(lái)困擾,蜘蛛可(kě)能會(huì)認為(wèi)這個(gè)網頁是重複頁面,而拒絕收錄。還(hái)是那(nà)句話(huà),随着技(jì)術(shù)的發展,蜘蛛對動态腳本的參數(shù)識别度有(yǒu)了很(hěn)大(dà)進步,現在基本上(shàng)可(kě)以不用考慮這個(gè)問題。

  但(dàn)這個(gè)催生(shēng)了一個(gè)技(jì)術(shù),叫做(zuò)僞靜态化,通(tōng)過對web服務端做(zuò)配置,讓用戶訪問的頁面,url格式看上(shàng)去是一個(gè)靜态頁,其實後面是一個(gè)正則匹配,實際執行(xíng)的是一個(gè)動态腳本。

  很(hěn)多(duō)社區(qū)論壇為(wèi)了追求免費搜索來(lái)路,做(zuò)了僞靜态化處理(lǐ),在十多(duō)年前,幾乎是草根站(zhàn)長必備技(jì)能之一。

  爬蟲技(jì)術(shù)暫時(shí)說到這裏,但(dàn)是這裏強調一下,有(yǒu)外鏈,不代表搜索蜘蛛會(huì)來(lái)爬取,搜索蜘蛛爬取了,不代表搜索引擎會(huì)收錄;搜索引擎收錄了,不代表用戶可(kě)以搜索的到;

  site語法是檢查一個(gè)網站(zhàn)收錄數(shù)的最基本搜索語法,我開(kāi)始以為(wèi)是abc的常識,直到在新加坡做(zuò)一些(xiē)創業培訓後交流才發現,大(dà)部分剛進入這個(gè)行(xíng)業的人(rén),或者有(yǒu)興趣進入這個(gè)行(xíng)業的人(rén),對此并不了解。

  一個(gè)範例,百度搜索一下 site:023web.com

  2、索引系統

  蜘蛛抓取的是網頁的內(nèi)容,那(nà)麽要想讓用戶快速的通(tōng)過關鍵詞搜索到這個(gè)網頁,就必須對網頁做(zuò)關鍵詞的索引,從而提升查詢效率,簡單說就是,把網頁的每個(gè)關鍵詞提取出來(lái),并針對這些(xiē)關鍵詞在網頁中的出現頻率,位置,特殊标記等諸多(duō)因素,給予不同的權值标定,然後,存儲到索引庫中。

  那(nà)麽問題來(lái)了,什麽是關鍵詞。

  英文來(lái)說,比如 this is a book,中文,這是一本書(shū)。

  英文很(hěn)自然是四個(gè)單詞,空(kōng)格是天然的分詞符,中文呢?你(nǐ)不能把一句話(huà)當作(zuò)關鍵詞吧(ba)(如果把一句話(huà)當作(zuò)關鍵詞,那(nà)麽你(nǐ)搜索其中部分信息的時(shí)候,是無法索引命中的,比如搜索一本書(shū),就搜索不出來(lái)了,而這顯然是不符合搜索引擎訴求的)。所以要分詞。

  最開(kāi)始,最簡單的思路是,每個(gè)字都切開(kāi),這個(gè)以前叫字索引,每個(gè)字建立索引,并标注位置,如果用戶搜索一個(gè)關鍵詞,也是把關鍵詞拆成字來(lái)搜索再組合結果,但(dàn)這樣問題就來(lái)了。

  比如搜索關鍵詞海鮮的時(shí)候,會(huì)出現結果,上(shàng)海鮮花(huā),這顯然不是應該的搜索結果。

  比如搜索關鍵詞和(hé)服的時(shí)候,會(huì)出現結果,交換機和(hé)服務器(qì)。

  這些(xiē)都是蠻荒期的google也不能幸免的問題。

  到後來(lái)有(yǒu)個(gè)梗,别笑,這些(xiē)都是血淚梗,半夜電(diàn)話(huà)過來(lái),說網監通(tōng)過搜索發現你(nǐ)社區(qū)有(yǒu)淫穢內(nèi)容要求必須删除,否則就關閉你(nǐ)的網站(zhàn),夜半驚醒認真排查,百思不得(de)其解,苦苦哀求提供信息線索,最後發現,有(yǒu)人(rén)發了一條小(xiǎo)廣告,求購二十四口交換機 還(hái)有(yǒu),涉嫌政治敏感,查到最後提供三台獨立服務器(qì) 看出其中敏感詞了沒?你(nǐ)說冤不冤。 這兩個(gè)故事可(kě)能并不是真的,因為(wèi)都是網上(shàng)看到的,但(dàn)是我想說,類似這樣的事情真的有(yǒu),并非都是空(kōng)穴來(lái)風。

  所以,分詞,是亞洲很(hěn)多(duō)語言需要額外處理(lǐ)的事情,而西方語言不存在的問題。

  但(dàn)分詞不是說說那(nà)麽簡單,比如幾點,1:如何識别人(rén)名?2、互聯網新詞如何識别?比如不明(míng)覺厲3、中英混排的坑,比如QQ表情。

  做(zuò)一個(gè)分詞系統,說到底也不難,但(dàn)是要做(zuò)一個(gè)自動學習,與時(shí)俱進,又能高(gāo)效率靈活的分詞引擎,還(hái)是很(hěn)有(yǒu)技(jì)術(shù)難度的。 當然,這方面我不是專家(jiā),不敢妄言了。

  現在機器(qì)學習技(jì)術(shù)發達了,特别是google在深度學習領域擁有(yǒu)領先優勢,以前很(hěn)多(duō)通(tōng)過人(rén)工做(zuò)标定,做(zuò)分類的工作(zuò)可(kě)以交給算(suàn)法完成,從某種意義來(lái)說,本地化的工作(zuò)可(kě)以讓機器(qì)學習去完成;未來(lái),也許深度學習技(jì)術(shù)可(kě)以自己學習掌握本地化的技(jì)巧。 但(dàn)我想說兩點,第一,從搜索引擎發展曆史看,在深度學習技(jì)術(shù)還(hái)沒成熟的情況下,本地化的工作(zuò)是非常重要的,也是很(hěn)重要的決定競争成敗的要素;第二,即便現在深度學習已經很(hěn)強大(dà),基于當地語言的人(rén)工參與,标定,測試,反饋,一些(xiē)本地化的工作(zuò)依然對深度學習的效率和(hé)效果擁有(yǒu)不可(kě)替代的作(zuò)用。

  索引系統除了分詞之外,還(hái)有(yǒu)一些(xiē)要點,比如實時(shí)索引,因為(wèi)一次索引庫的更新是個(gè)大(dà)動靜,一般網站(zhàn)運營者知道(dào),自己網站(zhàn)內(nèi)容更新後,需要等索引庫下一次更新才能看到效果,而且索引庫針對不同權重的網站(zhàn)內(nèi)容,更新的頻次也不太一樣。 但(dàn)諸如一些(xiē)高(gāo)優先的資訊網站(zhàn),以及新聞搜索,索引庫是可(kě)以做(zuò)到近似實時(shí)索引的,所以我們在新聞搜索裏,幾分鍾前的信息就已經可(kě)以搜索到了。

  我以前經常吐槽一個(gè)事情,我在百度空(kōng)間(jiān)發表的文章,每次都是google率先索引收錄,當時(shí)他們的解釋是,猜測是因為(wèi)很(hěn)多(duō)人(rén)通(tōng)過google閱讀器(qì)訂閱我的博客,而google閱讀器(qì)很(hěn)可(kě)能是google快速索引的入口。(然并卵,百度空(kōng)間(jiān)已經沒有(yǒu)了,google閱讀器(qì)也沒有(yǒu)了。)

  索引系統的權值體(tǐ)系,是所有(yǒu)SEOER們最關心的問題,他們經常通(tōng)過不同方式組合策略,觀察搜索引擎的收錄,排名,來(lái)路情況,然後通(tōng)過對比分析整理(lǐ)出相關的策略,這玩意說出來(lái)可(kě)以開(kāi)很(hěn)長一篇了,但(dàn)今天就不提了。

  但(dàn)我說一個(gè)事實,很(hěn)多(duō)外面的公司,做(zuò)SEO的,會(huì)誤認為(wèi)百度裏面的人(rén)熟悉這裏的門(mén)道(dào)和(hé)規律,很(hěn)多(duō)人(rén)高(gāo)價去挖百度的搜索産品經理(lǐ)和(hé)技(jì)術(shù)工程師(shī)去做(zuò)SEO,結果,呵呵,呵呵。 而外面那(nà)些(xiē)草根創業者,有(yǒu)些(xiē)善于此道(dào)的,真的比百度的人(rén)還(hái)清楚,搜索權值的影(yǐng)響關系,和(hé)更新頻次等等,比如前面說到的,身價幾十億的那(nà)個(gè)80後創業者。

  基于結果反推策略,比身在其中卻不識全局的參與者,更能找到系統的關鍵點,有(yǒu)意思不。

  3、查詢展現

  用戶在浏覽器(qì)或者在手機客戶端輸入一個(gè)關鍵詞,或者幾個(gè)關鍵詞,甚至一句話(huà),這個(gè)在服務端,應答(dá)程序獲取後處理(lǐ)步驟如下

  第一步,會(huì)檢查最近時(shí)間(jiān)有(yǒu)沒有(yǒu)人(rén)搜索過同樣的關鍵詞,如果存在這樣的緩存,最快的處理(lǐ)是将這塊緩存提供給你(nǐ),這樣查詢效率最高(gāo),對後端負載壓力最低(dī)。

  第二步,發現這個(gè)輸入查詢最近沒有(yǒu)搜索,或者有(yǒu)其他條件的原因必須更新結果,那(nà)麽會(huì)将這個(gè)用戶輸入的詞,進行(xíng)分詞,沒錯,如果不止一個(gè)關鍵詞,或者是一句話(huà)的情況下,應答(dá)程序會(huì)又一次分詞,将搜索的查詢拆成幾個(gè)不同的關鍵詞。

  第三步,将切分後的關鍵詞分發到查詢系統中,查詢系統會(huì)去索引庫查詢,索引庫是個(gè)龐大(dà)的分布式系統,先分析這個(gè)關鍵詞屬于哪一塊哪一台服務器(qì),索引是一種有(yǒu)序的數(shù)據組合,我們用可(kě)以用近似二分法的方式思考,不管數(shù)據規模多(duō)大(dà),你(nǐ)用二分法去查找一個(gè)結果,查詢頻次是log2(N),這個(gè)就保證了海量數(shù)據下,查詢一個(gè)關鍵詞是非常快非常快的。 當然,實際情況會(huì)比二分法複雜很(hěn)多(duō),這樣說比較容易理(lǐ)解而已,再複雜些(xiē)不是我不告訴大(dà)家(jiā),是我自己都不是很(hěn)清楚呢。

  第四步,不同關鍵詞的查詢結果(隻是按權值排序的部分頂部結果,絕對不是全部結果),基于權值倒序,會(huì)再彙總在一起,然後把共同命中的部分反饋回來(lái),并做(zuò)最後的權值排序。

  記住,搜索引擎絕對不會(huì)返回所有(yǒu)結果,這個(gè)開(kāi)銷誰都受不了,百度也不行(xíng),google也不行(xíng),翻頁都是有(yǒu)限制(zhì)的。

  再記住,如果你(nǐ)多(duō)個(gè)關鍵詞裏有(yǒu)多(duō)個(gè)不同品類冷門(mén)詞,搜索引擎有(yǒu)可(kě)能會(huì)舍棄其中一個(gè)冷門(mén)詞,因為(wèi)彙總數(shù)據很(hěn)可(kě)能不包含共同結果。搜索技(jì)術(shù)不要神話(huà),這樣的範例偶爾會(huì)出現。

  這是三大(dà)部分,多(duō)說一點,其實還(hái)有(yǒu)第四部分。

  用戶點擊行(xíng)為(wèi)采集和(hé)反饋部分

  基于用戶的翻頁,點擊分布,對搜索結果的優劣做(zuò)判定,并對權值做(zuò)調整,但(dàn)這個(gè)早期搜索引擎是沒有(yǒu)的,後面才有(yǒu),所以暫時(shí)不列為(wèi)必備的三大(dà)塊。

  此外,一些(xiē)對搜索優化的機器(qì)學習策略,對易混詞識别,同音(yīn)詞識别等等,相當部分也都基于用戶行(xíng)為(wèi)反饋進行(xíng),這是後話(huà),這裏不展開(kāi)。

  關于第四部分,我以前說過一個(gè)詞,點擊提權,我說這個(gè)詞價值千金,我猜很(hěn)多(duō)人(rén)并沒理(lǐ)解。沒理(lǐ)解就好,要不我要被一些(xiē)同行(xíng)罵死了。

  以上(shàng)是單指搜索引擎的工作(zuò)原理(lǐ),和(hé)一些(xiē)技(jì)術(shù)邏輯,當然,隻是入門(mén)級的解讀,畢竟再深入就不是我能講解的了。

  但(dàn)搜索引擎的本地化,并不局限于搜索技(jì)術(shù)的本地化。

  百度的強大(dà),不隻是搜索技(jì)術(shù),當然有(yǒu)些(xiē)人(rén)會(huì)說百度沒有(yǒu)搜索技(jì)術(shù),這種言論我就不争論了,我不試圖改變任何人(rén)的觀點,我隻列一些(xiē)事實而已。

 

客戶咨詢電(diàn)話(huà):

  企事業信息技(jì)術(shù)營銷中心總監電(diàn)話(huà):18983768183(王總監)

  運維技(jì)術(shù)研究所所長電(diàn)話(huà):13996000590(陽所長)

  您的建議就是我們最大(dà)的支持,中技(jì)互聯會(huì)再接再厲,持續追求更高(gāo)品質,創建高(gāo)品質網站(zhàn),服務客戶!

  本文由重慶網站(zhàn)建設-重慶網站(zhàn)建設公司-中技(jì)互聯:www.zjcoo.com

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博