一、搜索引擎的工作原理
日常大家用到的搜索引擎其實大多所使用的工作流程都是一樣的。通常是1.信息收集;
2.信息分析;3.信息系統建立;4.用戶查詢這四步。
信息系統用戶查詢信息收集信息分析
建立
但是由於各個搜索引擎所採取的細節戰略不一樣,所以我們得到的結果也不盡相同。比較典型的案例之前咱們也提到過,例如信息寬度優先的GO0GLE和百度等平臺搜索,也有信息垂度優先的鏈家和攜程這樣的垂類平臺搜索。今天咱們更深入的瞭解一下這些搜索引擎背後的工作原理。
簡單來說,搜索引擎工作的主要四大部分,也是搜索引擎的工作流程包括:用蜘蛛爬蟲爬取數據——分析系統分析數據——建立索引——查詢結果。根據這四大步驟流程,我們的搜索引擎除了我們能看到的網頁,主要也分這四大部分。
1.蜘蛛爬蟲
我們每天有無數的人無數次點擊搜索引擎去搜索各種各樣的東西,而每一次搜索都在短短的零點幾秒內就能搜到數萬條甚至是千萬條的信息供我們參考。為什麼搜索引擎能夠找到這麼多結果呢?主要是依靠這些叫蜘蛛的機器人,每天24小時不眠不休地在網站上爬取各種各樣的信息。
這些搜索引擎派出去的蜘蛛爬蟲是怎麼工作的呢?它們首先就是出去尋找各種網站的鏈接,在發現了鏈接後會把這個網頁下載下來並且存入到臨時的庫中,並且繼續提取這個網頁的所有鏈接,如此循環。
那麼搜索引擎的蜘蛛爬取網頁有規律嗎?答案是有的!如果沒有規律、漫無目的的爬取,影響工作效率不說,也會影響爬取回來的信息的結果。所以,蜘蛛爬蟲爬取網頁的時候也會採取一定的策略,比如有時候會採用深度優先的策略,即把爬取到的結果裡面,一層層爬取越深的鏈接越優先。或者採用寬度優先的策略,即爬取到的網頁的子網頁越寬越優先。
蜘蛛爬蟲對於已經爬取過的網頁還會進行重訪,因為網頁會更新、迭代、或者消失。為了保證搜索結果的時效性和準確性,爬蟲會採取全部重訪或者單個重訪的方式來重新抓取信息。
在蜘蛛爬蟲獲取信息之後,這些網頁信息就會進入我們的第二個系統:數據分析系統。
2.數據分析系統
爬取回來的網頁,搜索引擎不會一股腦兒地全都吞下,而是要進行基本的數據分析處理,變成能夠存儲到索引系統的部分。這就像我們打獵一樣,打回來的獵物要進行基本的處理才能存儲起來。那麼數據分析主要進行哪些步驟呢?
·清理
簡單來說就是把爬取回來的網頁代碼進行刪除,重複內容進行清理,然後把關鍵內容提取出來,就像我們把買回來的菜再去掉多餘的部分、清洗乾淨、然後切段整理一樣。
·鏈接分析
這一步驟中,搜索引擎會查詢這個頁面的反向鏈接有多少、導出鏈接又有多少,然後給頁面權重進行評分。
.存入索引庫
這一步就是搜索引擎在進行了前面的步驟後提取正文的內容,然後把內容分成N個詞,進行排列然後存入索引庫。
3.索引系統
當用戶輸入關鍵詞搜索後,由搜索系統程序從網頁索引數據庫中找到符合該關鍵詞的所有相關網頁。因為所有相關網頁針對該關鍵詞的相關度早已算好,所以只需按照現成的相關度數值排序,相關度越高,排名越靠前。
4.查詢系統
最後,由頁面生成系統將搜索結果的鏈接地址和頁面內容摘要等內容組織起來返回給用戶。
二、搜索引擎的分類
在認識我們的搜索工具這一節,以及垂直搜索這一節課程中,我們對於搜索引擎有了功能上和操作上的瞭解。而剛剛我們又瞭解搜索引擎的基本工作原理,在有了這些基礎之後,我們在這裡再進一步給大家做一個搜索引擎的分類,從而能夠更深刻的理解為什麼我們面對不同的搜索場景需求,要採取不同的搜索策略。
1.全文搜索引擎
全文搜索引擎就是我們一般意義上認識的搜索引擎,包括我們身邊的Goog1e、Baidu等耳熟能詳的大搜索引擎,都屬於是全文搜索引擎。之前介紹的搜索引擎的主要工作步驟,也是全文搜索引擎的用法。
2.元搜索引擎
元搜索引擎是指,在通過搜索對話框裡接受用戶查詢請求後,同時在多個搜索引擎上搜索,並將結果返回給用戶。這種搜索引擎不需要大量的爬蟲去爬取海量的網站信息,而是直接問各大搜索引擎要就行了,而且可以集中多個搜索引擎的資源。著名的元搜索引擎有webcrawler、Dogpile、Vivisimo等,比如webcrawler會在谷歌和雅虎兩個搜索引擎中進行檢索。在搜索結果排列方面,有的直接按來源排列搜索結果,如Dogpile;有的搜索引擎給出來的結果則是按引擎白定的規則將結果重新排列組合,如Vivisimo。
3.垂直搜索引擎
前面的課程中我們也介紹過垂直搜索引擎,和大型搜索引擎相比,使用垂直搜索引擎搜索範圍更小、更精準。
大型搜索引擎的數據庫儲存了互聯網上幾億至兒十億的網頁索引。但即使最大的搜索引擎建立超過二十億網頁的索引數據庫,也只能佔到互聯網上普通網頁的不到30%,不同搜索引擎之間的網頁數據重疊率一般在70%以下。所以當你死磕百度而得不到想要的答案時,也可以更多的去嘗試多平臺搜索,同時配合咱們之後講到的小技巧,成功率會高很多。我們使用不同搜索引擎的重要原因,就是因為它們能分別搜索到不同的內容。
三、高精度搜索的技巧
第五課中,我們己經學習了一些搜索指令。這節課,再為大家介紹幾個能夠讓你更加深度挖掘搜索結果的技巧。在對搜索引擎的工作原理有了上面的瞭解之後,我想這些技巧理解起來會更加容易,而靈活使用這些技巧也能夠讓我們對搜索引擎的操控更加自如,從而邁向更高水平的搜索高手行列。
1.精確檢索:“”(引號)和《》(書名號)的使用
在之前的課程我跟大家說過,提取關鍵詞的搜索往往要口語化的一整句輸入搜索出來的結果更多更好,因為機器不是人,無法提煉其中的關鍵字。但是,這並不絕對,其實更多的是取決於你的搜索場景和需求。
比如,有一次我在咖啡館聽到一首歌,是一個女聲吟唱的英文歌,聲音非常動聽,歌詞也非常優美。我想立馬知道這是什麼歌,是誰唱的,但是當時我只聽到了其中一句歌詞,是“Are you really here”,這是非常常見的一句歌詞,沒有很特別,如果我直接在搜索引擎中輸入這句話,搜索出來的相關度會很低,因為搜索的結果會出現把這句歌詞從中間拆分的情景。
這個時候,加上“ ”(雙引號)或者《》書名號,就可以實現一句話不拆開的精確檢索了,即把一整句話作為一個整體來檢索。這樣會大大提高檢索的準確性。
2.字段檢索
在第五課中,我們學習了inurl指令的使用,主要是用來限制網址中必須包含的字段,可以用這個方法把某一類的網址一網打盡。比如,我們在租房搜索的案例中,就使用了“inurl:gov.”,其中gov是英文government的縮寫,只有在政府的網站上才會帶有gov的字段,表示搜索的結果限制在政府的網站中。那其實我們還有很多其他的字段可以使用,插入這些字段,配合inurl使用,可以準確地把某一類型的網站篩選出來。在這裡給大家做一個能夠經常用到的字段總結:
如果你有一定的英語基礎,還可以用類文進行內容檢索。這裡有一些英語的搜索指令,如果用在搜索英語的學術論文或者一些文獻的時候,會大大地提高搜索的效率。比如,py是publication year的縮寫。“1a”是指搜索語言,用1a=English,就可以把語言限制在英語中。搜索1ink:(輸入網址A),就可以搜到哪些網頁中放了A網址的鏈接。比如link:whitehouse.gov,就可以搜到有多少個網頁放了白宮的鏈接。
這些搜索技能在你面臨量大、點散、又要深入挖掘相關領域資料的時候,是非常好用的,尤共對於從事研究、寫作或者諮詢類的朋友米說,可以大大減少搜索時間。
3.模糊檢索:*(星號)和?*(問號)的使用前面兩點都講的是如何讓搜索更精確,這裡講一講如何利用*(星號)和?*(問號)進行模糊搜索。這個技巧對於做學術文獻檢索尤為有效。
這個怎麼使用呢?我給大家舉一個例子,比如在英文中woman和women都代表女性,一個是單數一個是複數,中問就個字母的差異。在檢索中,如果你想搜索既包含單數也包含複數的女性,就可以用wom*n,或者wom?n來模糊掉中間的這個字母帶來的限制,於是不管是單數還是複數就都可以包括進來了。值得注意的是:雖然星號*是常用的,但百度不支持*號搜索指令。我們用Goog1e來舉個例子。比如在Goog1e中搜索:中國文學*其中的*號代表任何文字。返回的結果就不僅包含“中國文學”,還包含了“中國文學網”,“中國文學論壇”,“中國文學在線”“中國文學家園”等內容。
同樣的還可以應用在,比如*ology來表示專業領域,因為ology是表示學科的一個詞根,比如生物學在英文中就是biology。
根據自己的需要,通過用這兩個符號代替搜索中把不確定的部分模糊掉,擴大搜索範圍,以便起到更好地和搜索引擎交互的效果,這邊是模糊搜索的意義。
總結:知其然,還知其所以然
閱讀更多 1jiaoyu 的文章