freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

搜索引擎設計學士學位論文(已改無錯字)

2022-07-26 15:16:16 本頁面
  

【正文】 URL隊列中的URL以什么樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:深度優(yōu)先遍歷策略深度優(yōu)先遍歷策略是指網(wǎng)絡爬蟲會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個起始頁,繼續(xù)跟蹤鏈接。 深度優(yōu)先遍歷原理圖遍歷的路徑:AFG EHI B C D寬度有線遍歷策略寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁中發(fā)現(xiàn)的鏈接直接插入待抓取URL隊列的末尾。也就是指網(wǎng)絡爬蟲會先抓取起始網(wǎng)頁中鏈接的所有網(wǎng)頁,然后再選擇其中的一個鏈接網(wǎng)頁,繼續(xù)抓取在此網(wǎng)頁中鏈接的所有網(wǎng)頁。:遍歷路徑:ABCDEF G H I反響鏈接數(shù)策略反向鏈接數(shù)是指一個網(wǎng)頁被其他網(wǎng)頁鏈接指向的數(shù)量。反向鏈接數(shù)表示的是一個網(wǎng)頁的內(nèi)容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統(tǒng)會使用這個指標來評價網(wǎng)頁的重要程度,從而決定不同網(wǎng)頁的抓取先后順序。在真實的網(wǎng)絡環(huán)境中,由于廣告鏈接、作弊鏈接的存在,反向鏈接數(shù)不能完全等他我那個的重要程度。因此,搜索引擎往往考慮一些可靠的反向鏈接數(shù)。Partial PageRank策略Partial PageRank算法借鑒了PageRank算法的思想:對于已經(jīng)下載的網(wǎng)頁,連同待抓取URL隊列中的URL,形成網(wǎng)頁集合,計算每個頁面的PageRank值,計算完之后, 將待抓取URL隊列中的URL按照PageRank值的大小排列,并按照該順序抓取頁面。如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面后,重新計算一次PageRank值。但是這種情況還會有一個問題:對于已經(jīng)下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網(wǎng)頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網(wǎng)頁所有入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。OPIC策略該算法實際上也是對頁面進行一個重要性打分。在算法開始前,給所有頁面一個相同的初始現(xiàn)金(cash)。當下載了某個頁面P之后,將P的現(xiàn)金分攤給所有從P中分析出的鏈接,并且將P的現(xiàn)金清空。對于待抓取URL隊列中的所有頁面按照現(xiàn)金數(shù)進行排序。大站優(yōu)先策略對于待抓取URL隊列中的所有網(wǎng)頁,根據(jù)所屬的網(wǎng)站進行分類。對于待下載頁面數(shù)多的網(wǎng)站,優(yōu)先下載。這個策略也因此叫做大站優(yōu)先策略。 搜索引擎流程設計 搜索引擎總體流程設計用戶在載入起始搜索頁面后,通過輸入框輸入關鍵字進行站點查找。 搜索引擎總體流程 檢驗載入搜索頁面合法性檢驗載入搜索頁面合法性流程。 檢驗載入搜索頁面合法性流程 搜索功能設計搜索功能流程設計。 搜索功能流程圖 5 搜索引擎實現(xiàn)完成系統(tǒng)結構設計和所有模塊程序流程設計后,本系統(tǒng)的設計脈絡已經(jīng)基本清晰,接下來可以編寫代碼,實現(xiàn)系統(tǒng)。搜索引擎與用戶直接交互的是瀏覽器的搜索界面,在設計、開發(fā)和實現(xiàn)搜索界面時,考慮到代碼編寫的規(guī)范和實現(xiàn)的效率因素,作者將重要的實現(xiàn)代碼用JavaBean封裝實現(xiàn)。這樣在開發(fā)搜索界面時,實現(xiàn)代碼與布局代碼分離,作者只需要認真考慮界面布局即可,而無需擔心代碼之間相互交錯,增加開發(fā)難度。 JavaBean實現(xiàn)說明 數(shù)據(jù)庫連接類MysqlBeanMysqlBean的主要作用是與數(shù)據(jù)庫進行交互處理,包括連接數(shù)據(jù)庫、執(zhí)行查詢語句、返回查詢結果。連接數(shù)據(jù)庫代碼try{ ().newInstance()。 Connection connection=(url)。 = connection 。 Statement statement = ()。 = statement 。 }catch( ClassNotFoundException e ){ //throw () 。 }catch( SQLException e ){}catch( Exception e ){}執(zhí)行查詢語句由于MysqlBean只是重新封裝了Java中ResultSet類,所以只需要將SQL語句送進ResultSet的executeQuery()即可。實現(xiàn)代碼如下:ResultSet rs = ( sql )。 分詞處理類SpliteWordSpliteWord作用是對用戶輸入的關鍵字進行簡單的分割,然后保存在一個String數(shù)組中返回。代碼實現(xiàn)如下:String[] chineseWord_1 = ( [az|AZ|09 \\pP]+ ) 。String chineseWord_X = ( [az|AZ0|09 \\pP]+, ) 。 String[] chineseWord_2 = { chineseWord_X } 。 String[] englishWord = ( [^az|AZ]+ ) 。 String[][] result = { chineseWord_1 , chineseWord_2 , englishWord } 。 return result 。 生成SQL類CreateSqlCreateSql作用是生成一個可執(zhí)行的SQL語句,其中,對關鍵字進行中文分詞。實現(xiàn)代碼如下: for( int ix = 0 。 ix 。 ++ix ) { switch( ix ) { case 0 : if( select_word[ ix ].length == 1 amp。amp。 select_word[ ix ][ 0 ].equals() ) { break 。 } for( int jx = select_word[ ix ].length 。 jx 0 。 jx ) { //if( jx == 1 ){ continue 。 } if( jx == 1 amp。amp。 select_word[ ix ][ 0 ].equals() ){ continue 。 } ( or like 39。%) 。 for( int i = 0 。 i jx 。 ++i ) { if( !( select_word[ ix ][ i ].equals() ) ){ ( + select_word[ ix ][ i ] + % ) 。 } } (39。 ) 。 } //(@@@@@@@@@@@) 。 for( int jx = 0 。 jx select_word[ ix ].length 。 ++jx ) { if( select_word[ ix ][ jx ].equals() ){ continue 。 } if( select_word[ ix ].length == 1 || ( select_word[ ix ].length ==2 amp。amp。 select_word[ ix ][ 0 ].equals() ) ) { break 。 } if( !(select_word[ ix ][ jx ].equals() ) ){ ( or like 39。% + select_word[ ix ][ jx ]+ %39。) 。 } } //(@@@@@@@@@@@) 。 for( int jx = 0 。 jx select_word[ ix ].length 。 ++jx ) { if( jx == select_word[ ix ].length 1 || ( select_word[ ix ].length ==2 ) ){ break 。 } if( select_word[ ix ].length == 1 || ( select_word[ ix ].length ==2 amp。amp。 select_word[ ix ][ 0 ].equals() ) ) { break 。 } if( select_word[ ix ].length == 1 amp。amp。 select_word[ ix ][ 0 ].equals() ){ break 。 } //( or like 39。%) 。 if( select_word[ ix ][ jx ].equals() ){ continue 。 } if( ( jx + 1 ) select_word[ ix ].length ){ ( or like 39。%) 。 } for( int i = jx + 1 。 i select_word[ ix ].length 。 ++i ) { if( !(select_word[ ix ][ i ].equals() ) ){ ( + select_word[ ix ][ i ] + % ) 。 } } (39。 ) 。 } //(@@@@@@@@@@@) 。 //( 0 is over ) 。 break 。 case 1 : for( int jx = 0 。 jx select_word[ ix ].length 。 ++jx ) { if( !( select_word[ ix ][ jx ].equals() ) ){ char[] char_word = select_word[ ix ][ jx ].toCharArray() 。 if( = 2 ) { break 。 } ( or like 39。%) 。 for( int i = 0 。 i 。 ++i ) { if( 1 == ( i ) ) { ( + char_word[i] + % ) 。 } else { ( + char_word[i] + ) 。 ++i 。 ( + char_word[i] + % ) 。 } } (39。 ) 。 } } //( 1 is over ) 。 break 。 case 2 : if( ( 0 select_word[ ix ].length ) ) { ( or like 39。%) 。 } for( int jx = 0 。 jx select_word[ ix ].length 。 ++jx ) { if( !(select_word[ ix ][ jx ].equals() ) ){ ( + select_word[ ix ][ jx ]+ % ) 。 } } if( 0 select_word[ ix ].length ){ (39。 ) 。 } //(@@@@@@@@@@@) 。 /* if( ( select_word[ ix ].length == 3 amp。amp。 select_word[ ix ][ 0 ].equals() ) || select_word[ ix ].length == 2 ){ break 。 } */ if( select_word[ ix ].length == 1 ){ break 。 } for( int jx = select_word[ ix ].length 1 。 jx 0 。 jx ) { if( jx == 1 amp。amp。 (select_word[ ix ][ 0 ].equals() ) ){ continue 。 } ( or like 39。%) 。 for( int i = 0 。 i jx 。 ++i ) { if( !(select_word[ ix ][ i ].equals() ) ){ ( + select_word[ ix ][ i ] + % ) 。 } } (39。
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1