焦萍萍
摘要:隨著學校數(shù)字化建設的加快,校園的各種信息也不斷增加,對信息進行查找和定位也逐漸變得的困難。大多學校還是使用一般搜索引擎進行站內信息的搜索,利用這樣的搜索引擎一般不能及時地得到新消息。而且如果一些學校使用的二級域名或是用,P地址直接作為網站,那么很難被通用的搜索引擎給搜索到。所以本文將基于Python技術對校園的搜索引擎進行分析,提供一些設計方案僅供參考。
關鍵詞:校園搜索引擎;python技術;設計
當今時代是一個信息化的社會,人們通過互聯(lián)網可以看到各種信息,隨著互聯(lián)網的普遍使用,網絡信息也不斷地增長。想要提高信息搜索的效率,主要的就是對搜索引擎進行改進。而隨著校園的信息化建設,建立一個高效搜索引擎變得非常重要。所以,本文將結合python語言對搜索引擎的設計進行分析,探討一下該語言在校園網中的建設。
1.搜索引擎建立的流程分析
1.1框架的分析
建立校園搜索引擎首先就是要進行設計流程的分析;其次就是分析Python語言中Scrapy相關的開源爬蟲結構設計,其中在Scrapy爬蟲框架中有關URL的去重功能的分析;再則就是基于Python語言中關于Whoosh索引檢索庫的分析;最后就是對建立的系統(tǒng)進行測試。
根據(jù)多種的搜索引擎設計案例,總結出設計搜索引擎的基本流程:首先就是建立一個文件集合(collection),之后利用索引器(indexer)對這些文件進行索引建設。接著用戶就可以進行關鍵詞(query)的輸入,這樣系統(tǒng)就可以利用索引進行檢索。而且索引模塊可以對查詢的結果進行分析排序,最后將搜索結果按照用戶的要求進行排列呈現(xiàn)出來。在這之前要通過網絡爬蟲程序將這些集合文件下載好。因此,建立搜索引擎需要完成這幾個模塊:首先就是網絡爬蟲系統(tǒng)的建立,其次就是索引查詢系統(tǒng)的建立,最后就是顯示答案的模塊。
1.2網絡爬蟲
在1993年,“互聯(lián)網漫游者”誕生,它是世界上首個網路爬蟲程序,也被稱為是網絡機器人。網絡爬蟲通過利用圖論中的遍歷算法對互聯(lián)網中的大量信息進行下載,在建立搜索引擎時,是不可缺少圖論的遍歷算法的。該方法是將互聯(lián)網比作一個大圖,將每個網頁作為一個點,通過每個網頁中的超鏈接,就可以將它們相互連接起來了。
寬度優(yōu)先搜索(BFS),也可以稱為是廣度的優(yōu)先搜索,它也是屬于通圖中的一種遍歷對策。首先建立一張圖對該算法進行分析。如圖1所示。
如果想要得到V0到V6之間最短的路徑,那么就是分析與V0各個連接的節(jié)點,分別是V1、V2、V3,之后分析和三者相連的節(jié)點有:{V0、V4},{V0、V1、V6},{V0、V1、V5},將我們已經分析過的節(jié)點V1、V2、V3進行排除,那么就剩下V4、V6、V5,之后通過找出與V2的連接點V6,就可以得出一條路徑:VO-V2-V6,然后再尋找V5的連接點,就可以得到另外一個路徑:VO-V3-V5-V6,但是這條路徑不是所要的最短路徑。這些就是寬度搜索的基本邏輯,但是該訪問方式比較消耗內存。
深度優(yōu)先搜索(DFS)方式,它是和廣度搜索相反,它是“一條道走到黑”的邏輯。詳細來說就是當訪問走到頭,就去訪問其他相鄰的節(jié)點,假如有很多節(jié)點,那么訪問左邊的節(jié)點,直到沒有別的節(jié)點,然后在進行其他節(jié)點的訪問。這種搜索選擇邏輯效率比較慢,但是它可以和廣度有限搜索相結合,如此可以實現(xiàn)優(yōu)勢互補的效果。
非完全的PageRank邏輯選擇:它是屬于連接分析算法,主要是分析網頁重要性的。所以,在進行網頁優(yōu)先等級選擇時可以利用PageRank邏輯進行分析:將下載好的網頁,和需要獲取的網頁組成一個集合,之后在利用PageRank邏輯進行計算。計算完之后,將獲取的URL根據(jù)PageRank計算出的得分高低進行排列,然后爬蟲就在這些排列中進行URL列表的搜索。
1.3搜索引擎的索引
索引的核心部分就是進行布爾集合運算,不管搜索引擎多么的智能,它的基礎都是運用布爾運算。在布爾運算中主要使用0個1兩個值,具有三種邏輯:OR、AND、NOT。