搜尋引擎(搜尋功能)

搜尋引擎

搜尋功能一般指本詞條

所謂搜尋引擎,就是根據用戶需求與一定算法,運用特定策略從網際網路檢索出制定信息反饋給用戶的一門檢索技術。搜尋引擎依託於多種技術,如網路爬蟲技術、檢索排序技術、網頁處理技術、大數據處理技術、自然語言處理技術等,為信息檢索用戶提供快速、高相關性的信息服務。搜尋引擎技術的核心模組一般包括爬蟲、索引、檢索和排序等,同時可添加其他一系列輔助模組,以為用戶創造更好的網路使用環境。

基本介紹

  • 中文名:搜尋引擎
  • 外文名:search engine
  • 分類全文索引目錄索引
  • 代表百度谷歌
  • 作用:信息獲取
  • 關鍵技術:網路爬蟲、大數據處理、數據挖掘等
定義,發展歷程,工作原理,分類,全文搜尋引擎,元搜尋引擎,垂直搜尋引擎,目錄搜尋引擎,主要特點,體系結構,功能模組,關鍵技術,面臨問題,發展趨勢,

定義

搜尋引擎是指根據一定的策略、運用特定的計算機程式從網際網路上採集信息,在對信息進行組織和處理後,為用戶提供檢索服務,將檢索的相關信息展示給用戶的系統。搜尋引擎是工作於網際網路上的一門檢索技術,它旨在提高人們獲取蒐集信息的速度,為人們提供更好的網路使用環境。從功能和原理上搜尋引擎大致被分為全文搜尋引擎、元搜尋引擎、垂直搜尋引擎和目錄搜尋引擎等四大類。
搜尋引擎發展到今天,基礎架構和算法在技術上都已經基本成型和成熟。搜尋引擎已經發展成為根據一定的策略、運用特定的電腦程式從網際網路上蒐集信息,在對信息進行組織和處理後,為用戶提供檢索服務,將用戶檢索相關的信息展示給用戶的系統。

發展歷程

搜尋引擎是伴隨網際網路的發展而產生和發展的,網際網路已成為人們學習、工作和生活中不可缺少的平台,幾乎每個人上網都會使用搜尋引擎。搜尋引擎大致經歷了四代的發展:
1、第一代搜尋引擎
1994年第一代真正基於網際網路的搜尋引擎Lycos誕生,它以人工分類目錄為主,代表廠商是Yahoo, 特點是人工分類存放網站的各種目錄,用戶通過多種方式尋找網站,現在也還有這種方式存在。
2、第二代搜尋引擎
隨著網路套用技術的發展,用戶開始希望對內容進行查找,出現了第二代搜尋引擎,也就是利用關鍵字來查詢,最其代表性最成功的是Google,它建立在網頁連結分析技術的基礎上,使用關鍵字對網頁搜尋,能夠覆益網際網路的大量網頁內容,該技術可以分析網頁的重要性後.將重要的結果呈現給用戶。
3、第三代搜尋引擎
隨著網路信息的迅速膨脹,用戶希望能快速並且準確的查找到自己所要的信息,因此出現了第三代搜尋引擎。相比前兩代第三代搜尋引擎更加注重個性化、專業化智慧型化使用自動聚類、分類等人工智慧技術,採用區域智慧型識別及內容分析技術,利用人工介入,實現技術和人工的完美結合,增強了搜尋引擎的查詢能力。第三代搜尋引擎的代表是Google,它以寬廣的信息覆蓋率和優秀的搜尋性能為發展搜尋引擎的技術開創了嶄新的局面。
4、第四代搜尋引
隨著信息多元化的快速發展,通用搜尋引擎在目前的硬體條件下要得到網際網路上比較全面的信息是不太可能的,這時,用戶就需要數據全面、更新及時、分類細緻的面向主題搜尋引擎,這種搜尋引擎採用特徵提取和文本智慧型化等策略,相比前三代搜尋引擎更準確有效,被稱為第四代搜尋引擎。

工作原理

搜尋引擎的整個工作過程視為三個部分:一是蜘蛛在網際網路上爬行和抓取網頁信息,並存入原始網頁資料庫;二是對原始網頁資料庫中的信息進行提取和組織,並建立索引庫;三是根據用戶輸入的關鍵字,快速找到相關文檔,並對找到的結果進行排序,並將查詢結果返回給用戶。以下對其工作原理做進一步分析:
一、網頁抓取
Spider每遇到一個新文檔,都要搜尋其頁面的連結網頁。搜尋引擎蜘蛛訪問web頁面的過程類似普通用戶使用瀏覽器訪問其頁面,即B/S模式。引擎蜘蛛先向頁面提出訪問請求,伺服器接受其訪問請求並返回HTML代碼後,把獲取的HTML代碼存入原始頁面資料庫。搜尋引擎使用多個蜘蛛分布爬行以提高爬行速度。搜尋引擎的伺服器遍布世界各地,每一台伺服器都會派出多隻蜘蛛同時去抓取網頁。如何做到一個頁面只訪問一次,從而提高搜尋引擎的工作效率。在抓取網頁時,搜尋引擎會建立兩張不同的表,一張表記錄已經訪問過的網站,一張表記錄沒有訪問過的網站。當蜘蛛抓取某個外部連結頁面URL的時候,需把該網站的URL下載回來分析,當蜘蛛全部分析完這個URL後,將這個URL存入相應的表中,這時當另外的蜘蛛從其他的網站或頁面又發現了這個URL時,它會對比看看已訪問列表有沒有,如果有,蜘蛛會自動丟棄該URL,不再訪問。
二、預處理,建立索引
為了便於用戶在數萬億級別以上的原始網頁資料庫中快速便捷地找到搜尋結果,搜尋引擎必須將spider抓取的原始web頁面做預處理。網頁預處理最主要過程是為網頁建立全文索引,之後開始分析網頁,最後建立倒排檔案(也稱反向索引)。Web頁面分析有以下步驟:判斷網頁類型,衡量其重要程度,豐富程度,對超連結進行分析,分詞,把重複網頁去掉。經過搜尋引擎分析處理後,web網頁已經不再是原始的網頁頁面,而是濃縮成能反映頁面主題內容的、以詞為單位的文檔。數據索引中結構最複雜的是建立索引庫,索引又分為文檔索引和關鍵字索引。每個網頁唯一的docID號是有文檔索引分配的,每個wordID出現的次數、位置、大小格式都可以根據docID號在網頁中檢索出來。最終形成wordID的數據列表。倒排索引形成過程是這樣的:搜尋引擎用分詞系統將文檔自動切分成單詞序列-對每個單詞賦予唯一的單詞編號-記錄包含這個單詞的文檔。倒排索引是最簡單的,實用的倒排索引還需記載更多的信息。在單詞對應的倒排列表除了記錄文檔編號之外,單詞頻率信息也被記錄進去,便於以後計算查詢和文檔的相似度。
三、查詢服務
在搜尋引擎界面輸入關鍵字,點擊“搜尋”按鈕之後,搜尋引擎程式開始對搜尋詞進行以下處理:分詞處理、根據情況對整合搜尋是否需要啟動進行判斷、找出錯別字和拼寫中出現的錯誤、把停止詞去掉。接著搜尋引擎程式便把包含搜尋詞的相關網頁從索引資料庫中找出,而且對網頁進行排序,最後按照一定格式返回到“搜尋”頁面。查詢服務最核心的部分是搜尋結果排序,其決定了搜尋引擎的量好壞及用戶滿意度。實際搜尋結果排序的因子很多,但最主要的因素之一是網頁內容的相關度。影響相關性的主要因素包括如下五個方面。
(1)關鍵字常用程度。經過分詞後的多個關鍵字,對整個搜尋字元串的意義貢獻並不相同。越常用的詞對搜尋詞的意義貢獻越小,越不常用的詞對搜尋詞的意義貢獻越大。常用詞發展到一定極限就是停止詞,對頁面不產生任何影響。所以搜尋引擎用的詞加權係數高,常用詞加權係數低,排名算法更多關注的是不常用的詞。
(2)詞頻及密度。通常情況下,搜尋詞的密度和其在頁面中出現的次數成正相關,次數越多,說明密度越大,頁面與搜尋詞關係越密切。
(3)關鍵字位置及形式。關鍵字出現在比較重要的位置,如標題標籤、黑體、H1等,說明頁面與關鍵字越相關。在索引庫的建立中提到的,頁面關鍵字出現的格式和位置都被記錄在索引庫中。
(4)關鍵字距離。關鍵字被切分之後,如果匹配的出現,說明其與搜尋詞相關程度越大,當“搜尋引擎”在頁面上連續完整的出現或者“搜尋”和“引擎”出現的時候距離比較近,都被認為其與搜尋詞相關。
(5)連結分析及頁面權重。頁面之間的連結和權重關係也影響關鍵字的相關性,其中最重要的是錨文字。頁面有越多以搜尋詞為錨文字的導入連結,說明頁面的相關性越強。連結分析還包括了連結源頁面本身的主題、錨文字周圍的文字等。

分類

搜尋方式是搜尋引擎的一個關鍵環節,大致可分為四種:全文搜尋引擎元搜尋引擎垂直搜尋引擎目錄搜尋引擎,它們各有特點並適用於不同的搜尋環境。所以,靈活選用搜尋方式是提高搜尋引擎性能的重要途徑。全文搜尋引擎是利用爬蟲程式抓取網際網路上所有相關文章予以索引的搜尋方式;元搜尋引擎是基於多個搜尋引擎結果並對之整合處理的二次搜尋方式;垂直搜尋引擎是對某一特定行業內數據進行快速檢索的一種專業搜尋方式;目錄搜尋引擎是依賴人工收集處理數據並置於分類目錄連結下的搜尋方式。

全文搜尋引擎

一般網路用戶適用於全文搜尋引擎。這種搜尋方式方便、簡捷,並容易獲得所有相關信息。但搜尋到的信息過於龐雜,因此用戶需要逐一瀏覽並甄別出所需信息。尤其在用戶沒有明確檢索意圖情況下,這種搜尋方式非常有效。

元搜尋引擎

元搜尋引擎適用於廣泛、準確地收集信息。不同的全文搜尋引擎由於其性能和信息反饋能力差異,導致其各有利弊。元搜尋引擎的出現恰恰解決了這個問題,有利於各基本搜尋引擎間的優勢互補。而且本搜尋方式有利於對基本搜尋方式進行全局控制,引導全文搜尋引擎的持續改善。

垂直搜尋引擎

垂直搜尋引擎適用於有明確搜尋意圖情況下進行檢索。例如,用戶購買機票、火車票、汽車票時,或想要瀏覽網路視頻資源時,都可以直接選用行業內專用搜尋引擎,以準確、迅速獲得相關信息。

目錄搜尋引擎

目錄搜尋引擎是網站內部常用的檢索方式。本搜尋方式旨在對網站內信息整合處理並分目錄呈現給用戶,但其缺點在於用戶需預先了解本網站的內容,並熟悉其主要模組構成。總而觀之,目錄搜尋方式的適應範圍非常有限,且需要較高的人工成本來支持維護。

主要特點

1、信息抓取迅速。
在大數據時代,網路產生的信息浩如煙海,令人無所適從,難以得到自己需要的信息資源。在搜尋引擎技術的幫助下,利用關鍵字、高級語法等檢索方式就可以快速捕捉到相關度極高的匹配信息。
搜尋搜尋
2、深入開展信息挖掘。
搜尋引擎在捕獲用戶需求的信息的同時,還能對檢索的信息加以一定維度的分析,以引導其對信息的使用與認識。例如,用戶可以根據檢索到的信息條目判斷檢索對象的熱度,還可以根據檢索到的信息分布給出高相關性的同類對象,還可以利用檢索到的信息智慧型化給出用戶解決方案,等等。
3、檢索內容的多樣化和廣泛性。
隨著搜尋引擎技術的日益成熟,當代搜尋引擎技術幾乎可以支持各種數據類型的檢索,例如自然語言、智慧型語言、機器語言等各種語言。目前,不僅視頻、音頻、圖像可以被檢索,而且人類面部特徵、指紋、特定動作等也可以被檢索到。可以想像,在未來幾乎一切數據類型都可能成為搜尋引擎的檢索對象。

體系結構

搜尋引擎基本結構一般包括:搜尋器、索引器、檢索器、用戶接口等四個功能模組。
1、搜尋器:
搜尋器也叫網路蜘蛛,是搜尋引擎用來爬行和抓取網頁的一個自動程式,在系統後台不停歇地在網際網路各個節點爬行,在爬行過程中儘可能快的發現和抓取網頁。
2、索引器
它的主要功能是理解搜尋器所採集的網頁信息,並從中抽取索引項。
3、檢索器。
其功能是快速查找文檔,進行文檔與查詢的相關度評價,對要輸出的結果進行排序。
4、用戶接口。
它為用戶提供可視化的查詢輸入和結果輸出的界面。

功能模組

搜尋引擎中各關鍵功能模組功能簡介如下:
(1)爬蟲:從網際網路爬取原始網頁數據,存儲於文檔知識庫伺服器。
(2)文檔知識庫伺服器:存儲原始網頁數據,通常是分散式Key-Value資料庫,能根據URL/UID快速獲取網頁內容。
(3)索引:讀取原始網頁數據,解析網頁,抽取有效欄位,生成索引數據。索引數據的生成方式通常是增量的,分塊/分片的,並會進行索引合併、最佳化和刪除。生成的索引數據通常包括:字典數據、倒排表、正排表、文檔屬性等。生成的索引存儲於索引伺服器。
(4)索引伺服器:存儲索引數據,主要是倒排表,通常是分塊、分片存儲,並支持增量更新和刪除。數據內容量非常大時,還根據類別、主題、時間、網頁質量劃分數據分區和分布,更好地服務線上查詢。
(5)檢索:讀取倒排表索引,回響前端查詢請求,返回相關文檔列表數據。
(6)排序:對檢索器返回的文檔列表進行排序,基於文檔和查詢的相關性、文檔的連結權重等屬性。
(7)連結分析:收集各網頁的連結數據和錨文本(Anchor Text),以此計算各網頁連結評分,最終會作為網頁屬性參與返回結果排序。
(8)網頁去重:提取各網頁的相關特徵屬性,計算相似網頁組,提供離線索引和線上查詢的去重服務。
(9)網頁反垃圾:收集各網頁和網站歷史信息,提取垃圾網頁特徵,從而對線上索引中的網頁進行判定,去除垃圾網頁。
(10)查詢分析:分析用戶查詢,生成結構化查詢請求,指派到相應的類別、主題數據伺服器進行查詢。
(11)頁面描述/摘要:為檢索和排序完成的網頁列表提供相應的描述和摘要。
(12)前端:接受用戶請求,分發至相應伺服器,返回查詢結果。

關鍵技術

搜尋引擎工作流程主要有數據採集數據預處理、數據處理、結果展示等階段。在各工作階段分別使用了網路爬蟲、中文分詞、大數據處理、數據挖掘等技術。
網路爬蟲也被稱為蜘蛛或者網路機器人,它是搜尋引擎抓取系統的重要組成部分。網路爬蟲根據相應的規則,以某些站點作為起始站點通過各頁面上的超連結遍歷整個網際網路,利用URL弓I用根據廣度優先遍歷策略從一個html文檔爬行到另一個html文檔來抓取信息。
中文分詞是中文搜尋引擎中一個相當關鍵的技術,在創建索引之前需要將中文內容合理的進行分詞。中文分詞是文本挖掘的基礎,對於輸入的一段中文,成功的進行中文分詞,可以達到電腦自動識別語句含義的效果。
大數據處理技術是通過運用大數據處理計算框架,對數據進行分散式計算。由於網際網路數據量相當龐大,需要利用大數據處理技術來提高數據處理的效率。在搜尋引擎中,大數據處理技術主要用來執行對網頁重要度進行打分等數據計算。
數據挖掘就是從海量的數據中採用自動或半自動的建模算法,尋找隱藏在數據中的信息,是從資料庫中發現知識的過程。數據挖掘一般和計算機科學相關,並通過機器學習、模式識別、統計學等方法來實現知識挖掘。在搜尋引擎中主要是進行文本挖掘,搜尋文本信息需要理解人類的自然語言,文本挖掘指從大量文本數據中抽取隱含的、未知的、可能有用的信息。

面臨問題

網頁時效性:網際網路上的用戶眾多,數據信息來源極廣,網際網路上的網頁是呈實時動態變化的,網頁的更新、刪除等變動極為頻繁,有時候會出現新更新的網頁在爬蟲程式還來不及抓取的時候卻已經被刪除的情況,這將大大影響搜尋結果的準確性。
大數據存儲問題:爬蟲抓取的數據在經過預處理後數據量依然相當龐大,這給大數據存儲技術帶來相當大的挑戰。當前大部分搜尋引擎都是利用結構化的資料庫來存儲數據,結構化的資料庫存儲的數據具有高共享、低冗餘等特點,然而由於結構化的資料庫難以並發查詢所以存在查詢效率受限的問題。
檢索結果可靠性:目前由於數據挖掘技術以及計算機硬體的限制使得數據處理準確度未能達到理想程度,而且由於一些個人或公司利用搜尋引擎現有的漏洞通過作弊手段來干擾檢索結果導致檢索結果的可靠性可能會有損失。

發展趨勢

1、社會化搜尋
社交網路平台和套用占據了網際網路的主流,社交網路平台強調用戶之間的聯繫和互動,這對傳統的搜尋技術提出了新的挑戰。
傳統搜尋技術強調搜尋結果和用戶需求的相關性,社會化搜尋除了相關性外,還額外增加了一個維度,即搜尋結果的可信賴性。對某個搜尋結果,傳統的結果可能成千上萬,但如果處於用戶社交網路內其他用戶發布的信息、點評或驗證過的信息則更容易信賴,這是與用戶的心裡密切相關的。社會化搜尋為用戶提供更準確、更值得信任的搜尋結果。
2、實時搜尋
對搜尋引擎的實時性要求日益增高,這也是搜尋引擎未來的一個發展方向。
實時搜尋最突出的特點是時效性強,越來越多的突發事件首次發布在微博上,實時搜尋核心強調的就是“快”,用戶發布的信息第一時間能被搜尋引擎搜尋到。不過在國內,實時搜尋由於各方面的原因無法普及使用,比如Google的實時搜尋是被重置的,百度也沒有明顯的實時搜尋入口。
3、移動搜尋
隨著智慧型手機的快速發展,基於手機的移動設備搜尋日益流行,但移動設備有很大的局限性,比如螢幕太小,可顯示的區域不多,計算資源能力有限,打開網頁速度很慢,手機輸入繁瑣等問題都需要解決。
目前,隨著智慧型手機的快速普及,移動搜尋一定會更加快速的發展,所以移動搜尋的市場占有率會逐步上升,而對於沒有移動版的網站來說,百度也提供了“百度移動開放平台”來彌補這個缺失。
4、個性化搜尋
個性化搜尋主要面臨兩個問題:如何建立用戶的個人興趣模型?在搜尋引擎里如何使用這種個人興趣模型?
個性化搜尋的核心是根據用戶的網路行為,建立一套準確的個人興趣模型。而建立這樣一套模型,就要全民收集與用戶相關的信息,包括用戶搜尋歷史、點擊記錄、瀏覽過的網頁、用戶E-mail信息、收藏夾信息、用戶發布過的信息、部落格、微博等內容。比較常見的是從這些信息中提取出關鍵字及其權重。為不同用戶提供個性化的搜尋結果,是搜尋引擎總的發展趨勢,但現有技術有很多問題,比如個人隱私的泄露,而且用戶的興趣會不斷變化,太依賴歷史信息,可能無法反映用戶的興趣變化。
5、地理位置感知搜尋
目前,很多手機已經有GPS的套用了,這是基於地理位置感知的搜尋,而且可以通過陀螺儀等設備感知用戶的朝向,基於這種信息,可以為用戶提供準確的地理位置服務以及相關搜尋服務。目前,此類套用已經大行其道,比如手機地圖APP。
6、跨語言搜尋
如何將中文的用戶查詢翻譯為英文查詢,目前主流的方法有3種:機器翻譯、雙語詞典查詢和雙語語料挖掘。對於一個全球性的搜尋引擎來說,具備跨語言搜尋功能是必然的發展趨勢,而其基本的技術路線一般會採用查詢翻譯加上網頁的機器翻譯這兩種技術手段。
7、多媒體搜尋
目前,搜尋引擎的查詢還是基於文字的,即使是圖片和視頻搜尋也是基於文本方式。那么未來的多媒體搜尋技術則會彌補查詢這一缺失。多媒體形式除了文字,主要包括圖片、音頻、視頻。多媒體搜尋比純文本搜尋要複雜許多,一般多媒體搜尋包含4個主要步驟:多媒體特徵提取、多媒體數據流分割、多媒體數據分類和多媒體數據搜尋引擎。
8、情境搜尋
情境搜尋是融合了多項技術的產品,上面介紹的社會化搜尋、個性化搜尋、地點感知搜尋等都是支持情境搜尋的,目前Google在大力提倡這一概念。所謂情境搜尋,就是能夠感知人與人所處的環境,針對“此時此地此人”來建立模型,試圖理解用戶查詢的目的,根本目標還是要理解人的信息需求。比如某個用戶在蘋果專賣店附近發出“蘋果”這個搜尋請求,基於地點感知及用戶的個性化模型,搜尋引擎就有可能認為這個查詢是針對蘋果公司的產品,而非對水果的需求。

相關詞條

熱門詞條

聯絡我們