摘 要:在介紹搜索引擎的工作原理基礎(chǔ)上,比較了主要搜索引擎的工作方式,系統(tǒng)地分析了現(xiàn)階段搜索引擎的關(guān)鍵技術(shù)(爬蟲、索引、數(shù)據(jù)庫以及查詢),提出了一種基于關(guān)鍵詞提煉的搜索引擎優(yōu)化技術(shù),并且論證了該方案的可行性。
關(guān)鍵詞:搜索引擎;優(yōu)化;關(guān)鍵詞集合;提煉;查詢
1 概述
互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)正改變著我們的生活。在信息極速涌現(xiàn)的今天,如何快速、準(zhǔn)確獲取自己所需的信息,是人們經(jīng)常面對的問題。搜索引擎,為互聯(lián)網(wǎng)用戶搜索信息帶來了便利,其中被廣泛使用的有Google、百度等,它們極大推動了互聯(lián)網(wǎng)的發(fā)展。與此同時,隨著信息量的增長,出現(xiàn)了很多重復(fù)和垃圾信息。因此,對于搜索引擎關(guān)鍵技術(shù)的改進(jìn),依然有必要進(jìn)一步研究。[1,2]
搜索引擎主要分為元搜索引擎和集成搜索引擎,前者以獨(dú)立搜索引擎的搜索結(jié)果為基礎(chǔ)優(yōu)化后以統(tǒng)一的格式在界面集中顯示,如百度、谷歌、雅虎等;而后者是在一個網(wǎng)頁上鏈接很多個獨(dú)立搜索引擎,搜索結(jié)果由各搜索引擎分別以不同頁面顯示,如新浪、搜狐等,文章主要討論元搜索引擎。
論文第二部分對典型搜索引擎進(jìn)行了比較,而第三部分對搜索引擎的關(guān)鍵技術(shù)進(jìn)行了分析,結(jié)合搜索引擎的使用感受,論文提出了一種基于關(guān)鍵詞提煉的搜索引擎優(yōu)化方案,并對該方案的可行性進(jìn)行了分析,最后小結(jié)全文。
2 搜索引擎比較
搜索引擎首先利用Spider系統(tǒng)程序,爬過很多的網(wǎng)頁,并把爬過的所有網(wǎng)頁收集回來。接著分析該網(wǎng)頁,提取相關(guān)信息,計算網(wǎng)頁相關(guān)度,然后用這些信息建立網(wǎng)頁索引數(shù)據(jù)庫。當(dāng)用戶輸入關(guān)鍵詞之后,系統(tǒng)程序會從網(wǎng)頁索引數(shù)據(jù)庫中找到符合的網(wǎng)頁,用戶可以根據(jù)排名選擇自己需要的內(nèi)容。不同的搜索引擎,完成資源呈現(xiàn),又各有特點(diǎn)。[3-6]
百度依據(jù)搜索引擎系統(tǒng)的計算決定對哪些網(wǎng)站進(jìn)行抓取。計算過程會根據(jù)網(wǎng)站內(nèi)容、對用戶友好的設(shè)置、有無過度搜索引擎優(yōu)化行為等。百度蜘蛛會通過互聯(lián)網(wǎng)中某個指向該頁面的鏈接進(jìn)行訪問和抓取,對抓取的頁面也會進(jìn)行記錄。并依據(jù)這些頁面安排不同頻次的抓取更新工作。百度蜘蛛在工作的時候,會對一些沒有足夠價值的網(wǎng)頁進(jìn)行自動過濾,以避免帶來不必要的麻煩。抓取之后,百度會逐一識別并標(biāo)記,并將這些標(biāo)記儲存為結(jié)構(gòu)化數(shù)據(jù),也會將網(wǎng)頁關(guān)鍵詞信息進(jìn)行識別和儲存,以匹配用戶搜索內(nèi)容。當(dāng)用戶輸入關(guān)鍵詞,百度會分析并展現(xiàn)給用戶最為匹配的網(wǎng)頁。
Google有主爬蟲和新爬蟲。它有兩種抓取方式,分為主抓取和新抓取。“新抓取”蜘蛛抓取一個網(wǎng)頁,然后再由“主抓取”蜘蛛抓取,此時這個網(wǎng)頁就要經(jīng)過兩個月才能被主索引收錄,然后出現(xiàn)排名。如果網(wǎng)頁先被“主抓取”蜘蛛抓取,那么該網(wǎng)頁只需一個月就能進(jìn)入主索引。
雅虎搜索首先會建立一個網(wǎng)頁地圖來記錄互聯(lián)網(wǎng)的結(jié)構(gòu),再使用蜘蛛抓取質(zhì)量好的網(wǎng)頁,存到快照數(shù)據(jù)庫中。然后索引程序會去掉作弊網(wǎng)頁并將快照數(shù)據(jù)庫中的網(wǎng)頁編號存儲到網(wǎng)頁索引數(shù)據(jù)庫中。在用戶輸入關(guān)鍵詞后,查詢程序會在數(shù)據(jù)庫中進(jìn)行比較,經(jīng)過相關(guān)計算,按照相關(guān)度將網(wǎng)頁進(jìn)行排序。
3 搜索引擎關(guān)鍵技術(shù)
不管是百度,谷歌,還是其它元搜索引擎,搜索方式各有所長,各有特點(diǎn),而搜索引擎實(shí)現(xiàn)網(wǎng)絡(luò)資源搜索的關(guān)鍵技術(shù)基本相同,主要分為如下四種:
3.1 爬蟲技術(shù)
所謂網(wǎng)絡(luò)爬蟲,是指某種自動提取網(wǎng)頁的程序,是搜索引擎的重要組成。它根據(jù)網(wǎng)頁分析算法過濾無關(guān)的鏈接,保留相關(guān)鏈接,并放入待抓取的URL隊列中。再根據(jù)搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁URL,重復(fù)上述過程,直到觸發(fā)終止條件。
網(wǎng)絡(luò)爬蟲[7,8,9]主要包括四類方法:一種是基于文字內(nèi)容,利用網(wǎng)頁文本、URL字符串、錨文字等文字信息,如Best first search方法和Fish search方法;第二種是基于Web超鏈圖評價,類似文獻(xiàn)計量學(xué)的引文分析,但不考慮超鏈形成的Web有向圖對主題網(wǎng)絡(luò)爬蟲的影響,如BackLink和PageRank方法;第三種是基于分類器預(yù)測,基于分類模型描述用戶感興趣的主題和預(yù)測網(wǎng)頁的主題相關(guān)度,該方法可以從更深的層次來描述用戶感興趣的主題信息,并準(zhǔn)確計算網(wǎng)頁的主題相關(guān)性,而不只停留在基于關(guān)鍵詞的匹配上;最后一種是其他主題爬行方法,先爬行更重要的網(wǎng)頁使得爬行更有效,從而計算網(wǎng)頁重要性。
實(shí)驗顯示執(zhí)行效果依次是BestFirst、InfoSpiders、PageRank,其中,Page Rank在主題爬行任務(wù)中過于全面,導(dǎo)致效果不好。
3.2 索引技術(shù)[10-13]
索引是搜索引擎的核心技術(shù)之一,主要分為文本索引、鏈接索引、輔助索引和倒排索引。
文本索引主要應(yīng)用于查找與用戶查詢詞的相關(guān)頁面,可使用傳統(tǒng)索引方法為頁面內(nèi)容建立索引;鏈接索引的目的是實(shí)現(xiàn)對圖的高效訪問,將Web看作是一個巨大的圖,圖中的節(jié)點(diǎn)表示頁面,從頁面A到頁面B的超鏈接構(gòu)成圖的邊,使用Web構(gòu)成的圖及其補(bǔ)圖的鄰接鏈表可以有效地對這種鄰接信息進(jìn)行訪問,其他類型的鏈接信息也可以通過鄰接鏈表方便地得到;輔助索引根據(jù)搜索引擎的特色及搜索算法決定的,采用鏈接索引包含的鄰接信息,比較容易地計算每個頁面的PageRank權(quán)值;倒排索引由倒排列表構(gòu)成,每個詞對應(yīng)一個倒排列表,倒排列表是詞在頁面中的位置的有序列表。
3.3 數(shù)據(jù)庫技術(shù)
數(shù)據(jù)庫原本是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫。當(dāng)前,數(shù)據(jù)庫不再局限于存儲和管理數(shù)據(jù),已經(jīng)轉(zhuǎn)變成了用戶所需的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多的類型,最簡單的就是存儲數(shù)據(jù)的表格,復(fù)雜的比如大型的數(shù)據(jù)庫系統(tǒng)。
Google的數(shù)據(jù)庫是spanner,它覆蓋全球,在各種數(shù)據(jù)之間無縫運(yùn)作。普通的數(shù)據(jù)庫會使用“網(wǎng)絡(luò)時間協(xié)議”來保持服務(wù)器的同步。而Spanner數(shù)據(jù)庫會使用自己的時間協(xié)調(diào)機(jī)制,稱為“TrueTime API”。Google通過自有原子鐘和GPS接收器,連接到特定數(shù)量的主服務(wù)器,再由主服務(wù)器向整個谷歌網(wǎng)絡(luò)其他電腦傳輸時間參數(shù)。這樣,谷歌構(gòu)建了一同時具有全球性和時間一致性的數(shù)據(jù)庫,同時使其服務(wù)在軟硬件故障的面前變得更加具有抵抗力。
百度數(shù)據(jù)庫MySQL是一開放源代碼的關(guān)系型數(shù)據(jù)庫系統(tǒng),因為數(shù)據(jù)存放在分立的表格,增加了用戶的速度和靈活性。另外,系統(tǒng)的多線程機(jī)制提供了完全的多線程運(yùn)行模式和多編程語言的編程接口。
3.4 查詢技術(shù)
查詢以網(wǎng)頁得分為基礎(chǔ),依據(jù)網(wǎng)頁得分確定搜索結(jié)果的排序,其主要分為三個部分:一為鏈接得分,以網(wǎng)頁目前得分除以它全部的鏈接數(shù)目,而指向該網(wǎng)頁的網(wǎng)站則加上這個分?jǐn)?shù),多次迭代之后一個網(wǎng)站的分?jǐn)?shù)得出;第二部分是Lucene得分系統(tǒng),該系統(tǒng)根據(jù)查詢詞在文檔中出現(xiàn)的詞頻,倒排詞頻等一系列的項目綜合得到一個數(shù)值從而表示本詞條在整個索引中的重要程度;第三部分是用戶的愛好選擇,當(dāng)用戶確定需要查詢方向后,其相關(guān)網(wǎng)頁的得分就會高于其他的網(wǎng)頁。根據(jù)反復(fù)的統(tǒng)計分析,得出網(wǎng)頁得分。
當(dāng)用戶輸入關(guān)鍵詞時,查詢模塊檢查到文本框中有內(nèi)容,就會自動調(diào)用索引搜索程序?qū)﹃P(guān)鍵詞進(jìn)行索引,從而得出搜索結(jié)果。然后取出lucene的得分、pageRank以及用戶特殊搜索,根據(jù)得分公式算出每一條目得分,將所有的結(jié)果從高到低快速排列并顯示,在不刷新整個網(wǎng)頁的情況下,使用異步傳輸技術(shù),根據(jù)點(diǎn)擊下一頁的次數(shù)顯示全部的信息。
4 基于關(guān)鍵詞提煉的搜索引擎優(yōu)化
本方案基于用戶點(diǎn)擊查看體驗,進(jìn)行搜索的二次優(yōu)化。具體而言,就是搜索引擎根據(jù)用戶在第一頁的點(diǎn)擊情況,在第二頁做出相對的優(yōu)化措施的行為。當(dāng)用戶輸入關(guān)鍵詞之后,搜索引擎會進(jìn)行中文分詞,然后將用戶所需的內(nèi)容分為很多頁展現(xiàn)給用戶看。此時在第一頁中,用戶可能不能找到自己所需的,如果用戶點(diǎn)擊過了第一頁的一些內(nèi)容,那么搜索引擎會根據(jù)用戶的點(diǎn)擊,在第二頁的內(nèi)容中進(jìn)行二次優(yōu)化,試圖進(jìn)一步理解用戶搜索需求,彌補(bǔ)在第一次搜索中內(nèi)容展現(xiàn)的不足,以滿足用戶的需要,如圖1所示,本方案大體分為如下三步:
(1)用戶鍵入關(guān)鍵詞,至少會提煉出至少一個關(guān)鍵詞,搜索引擎調(diào)用查詢模塊,數(shù)據(jù)庫就會獲得2的m次方個相關(guān)的內(nèi)容。根據(jù)網(wǎng)頁得分,呈現(xiàn)出排名前十的網(wǎng)頁。
(2)用戶會對十個網(wǎng)頁可能會點(diǎn)擊某幾個網(wǎng)頁,或者直接進(jìn)入下一頁來點(diǎn)擊。用戶對網(wǎng)頁的點(diǎn)擊,搜索引擎可以提煉出新的關(guān)鍵詞,形成新的關(guān)鍵詞集合,用戶點(diǎn)擊下一頁,搜索引擎它是基于新的關(guān)鍵詞集合,調(diào)用查詢模塊。數(shù)據(jù)庫可能獲得2的m-1,m-2次方的相關(guān)內(nèi)容。根據(jù)網(wǎng)頁得分,呈現(xiàn)出排名前十的網(wǎng)頁。
(3)用戶如果獲取所需內(nèi)容,結(jié)束查詢?;蛘呃^續(xù)這種操作,數(shù)據(jù)庫就會獲得2的m-2,m-3……次方,直至用戶獲取所需內(nèi)容,結(jié)束查詢。
該方案假定用戶所期待的資源Internet是存在的,這種假定通常成立。用戶的搜索行為可以分類如下:
(1)一個很長語句或者是多個關(guān)鍵詞。這種情況下,搜索結(jié)果就會很快速、準(zhǔn)確。
(2)單個關(guān)鍵詞。搜索引擎的結(jié)果就是隨機(jī)的用戶所期待的資源就是在五頁左右就會有所呈現(xiàn),用戶逐一查找獲得所需的資源。
(3)用戶鍵入語句,要么解析不出關(guān)鍵詞或者關(guān)鍵詞解析錯誤,沒有有效的關(guān)鍵詞來指向資源,查詢失敗。
當(dāng)前搜索引擎特點(diǎn):一次理解,逐頁呈現(xiàn);理解偏差,呈現(xiàn)偏后;理解錯誤,查找失敗。所提出的方案,基本思想是逐步理解用戶的意圖,自適應(yīng)調(diào)整關(guān)鍵詞集合,快速指向期望資源。
通過搜索引擎獲取所需信息,在輸入關(guān)鍵詞之后,假如第一頁沒有所需要的,用戶則需要點(diǎn)擊下一頁。一般情況下,搜索引擎排列內(nèi)容都是按照網(wǎng)頁得分排列的,說明越往后的內(nèi)容越不符合用戶需求。此時,基于關(guān)鍵詞提煉的搜索引擎優(yōu)化將會給用戶帶來新的希望,根據(jù)用戶在第一頁是否點(diǎn)擊以及點(diǎn)擊內(nèi)容,搜索引擎在后一頁做出相應(yīng)的優(yōu)化,以便于用戶找到自己需求的信息,這會讓用戶搜索變得快速準(zhǔn)確。
5 結(jié)束語
文章對搜索引擎的技術(shù)進(jìn)行了分析,提出了基于關(guān)鍵詞提煉的搜索引擎優(yōu)化技術(shù)。方案通過分析用戶行為,理解用戶查詢意圖,指數(shù)遞減調(diào)用條目,提高用戶查詢效率。
參考文獻(xiàn)
[1]王香蓮.Google和百度兩種搜索引擎比較研究[J].現(xiàn)代圖書情報技術(shù),2004(8):52-55.
[2]田梅梅.搜索引擎Google與百度的比較分析[J].圖書情報.
[3]王繼成,潘金貴,張福炎.Web文本挖掘技術(shù)研究[J].計算機(jī)研究與發(fā)展,2000,37(5):514-520.
[4]梁循.數(shù)據(jù)挖掘:建模、算法、應(yīng)用和系統(tǒng)[J].計算機(jī)技術(shù)與發(fā)展,2006,16(1):1-4.
[5]曾春,邢春曉,周立柱.個性化服務(wù)技術(shù)綜述[J].軟件學(xué)報,2002,13(10):1952-1961.
[6]王國霞,劉賀平.個性化推薦系統(tǒng)綜述[J].計算機(jī)工程與應(yīng)用,2012,48(7):66-76.
[7]劉金紅,陸余良.主題網(wǎng)絡(luò)爬蟲研究綜述[J].計算機(jī)應(yīng)用研究,2007,24(10):26-29.
[8]劉暢.綜合搜索引擎與垂直搜索引擎的比較研究[J].情報科學(xué),2007,25(1):97-102.
[9]方潔.搜索引擎及其性能改進(jìn)方法研究[J].軟件導(dǎo)刊,2014,13(12):41-43.
[10]孫藝珍,季小迪,張京濤.基于.Net的全文搜索引擎設(shè)計與實(shí)現(xiàn)[J].西安科技大學(xué)學(xué)報,2014,34(6):702-706.
[11]曹姍姍,王沖.基于網(wǎng)頁鏈接與用戶反饋的PageRank算法改進(jìn)研究[J].計算機(jī)科學(xué),2014,41(12):179-182.
[12]余凱,賈磊,陳雨強(qiáng),等.深度學(xué)習(xí)的昨天、今天和明天[J].計算機(jī)研究與發(fā)展,2013,50(9):1799-1804.
[13]董宇欣,王瑩潔,寧鵬飛,等.一種面向不確定圖的SimRank算法[J].哈爾濱工程大學(xué)學(xué)報,2014,35(11):1390-1396.