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