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

正文內容

基于web搜索引擎的設計與實現(xiàn)本科畢業(yè)論文(編輯修改稿)

2025-07-20 21:36 本頁面
 

【文章內容簡介】 RL。等待隊列:在這個隊列中,URL 等待被 Spider程序處理。新發(fā)現(xiàn)的 URL也被加入到這個隊列中。處理隊列: 當 Spider程序開始處理時,他們被送到這個隊列中錯誤隊列: 如果在解析網頁時出錯,URL 將被送到這里。該隊列中的 URL不能被移入其他隊列中完成隊列: 如果解析網頁沒有出錯,URL 將被送到這里。該隊列中的 URL不能被移入其它隊列中在同一時間 URL只能在一個隊列中,我們把它稱為 URL的狀態(tài)。13發(fā)現(xiàn) URL 等待隊列 運行隊列完成隊列錯誤隊列完成 URL圖 1 隊列的變化過程以上的圖表示了隊列的變化過程,在這個過程中,當一個 URL被加入到等待隊列中時 Spider程序就會開始運行。只要等待隊列中有一個網頁或 Spider程序正在處理一個網頁,程序就會繼續(xù)他的工作。當等待隊列為空并且當前沒有任何網頁時,Spider程序就會停止它的工作。 如何構造 Spider 程序在構造 Spider程序之前我們先了解下程序的各個部分是如何共同工作的。以及如何對這個程序進行擴展。流程圖如下所示:14把 URL 加入等待隊列Spider 程序工作完成等待隊列中是否有 URL?否下載從等待隊列中得到的網頁,并將他送入運行隊列中。是這個網頁包含其他超級連接嗎?將這一網頁送入完成隊列并繼續(xù)查看網頁上的下一個超連接是否為指向Web 的連接?報告其他類型連接連接是否與網頁所在主機不同且只處理本地連接?報告外部連接報告網頁連接將連接加入等候隊列否是否是否是15圖 2 Spider 程序流程圖16Ispider Reportable接口 5這是一個必須實現(xiàn)的接口,可以通過回調函數接受 Spider所遇到的頁面。接口定義了 Spider向他的控制者發(fā)送的幾個事件。通過提供對每個事件的處理程序,可以創(chuàng)建各種 Spider程序。下面是他的接口聲明:public interface IspiderReportable{public boolean foundInternalLink(String url)。public boolean foundExternalLink(String url)。public boolean foundOtherLink(String url)。public void processPage(HTTP page)。public void pletePage(HTTP page,boolean error)。public boolean getRemoveQuery()。public void SpiderComplete()。} 如何提高程序性能Inter中擁有海量的 Web頁面,如果開發(fā)出高效的 Spider程序是非常重要的。下面就來介紹下幾種提高性能的技術:Java的多線程技術線程是通過程序的一條執(zhí)行路線。多線程是一個程序同時運行多個任務的能力。它是在一個程序的內部進行分工合作。優(yōu)化程序的通常方法是確定瓶頸并改進它。瓶頸是一個程序中最慢的部分,它限制了其他任務的運行。據個例子說明:一個 Spider程序需要下載十個頁面,要完成這一任務,程序必須向服務器發(fā)出請求然后接受這些網頁。當程序等待響應的時候其他任務不能執(zhí)行,這就影響了程序的效率。如果用多線程技術可以讓這些網頁的等待時間合在一起,不用互相影響,這就可以極大的改進程序性能。數據庫技術當 Spider程序訪問一個大型 Web站點時,必須使用一種有效的方法來存儲站點隊列。這些隊列管理 Spider程序必須維護大型網頁的列表。如果把他們放在內存中17將會是性能下降,所以我們可以把他們放在數據庫中減少系統(tǒng)資源的消耗。 網絡機器人的代碼分析程序結構圖如下: 圖 3 網絡機器人程序結構圖程序代碼實現(xiàn)如下:package news。/** * 新聞搜索引擎* 計算機 99630 沈晨 * 版本 */import 。import 。import 。import 。import 。import 。/** * 構造一個 Bot程序 */18public class Searcher implements ISpiderReportable { public static void main(String[] args) throws Exception { IWorkloadStorable wl = new SpiderInternalWorkload()。 Searcher _searcher = new Searcher()。 Spider _spider = new Spider(_searcher, new HTTPSocket(), 100, wl)。 (100)。 ()。 }// 發(fā)現(xiàn)內部連接時調用,url 表示程序發(fā)現(xiàn)的 URL,若返回 true則加入作業(yè)中,否則不加入。 public boolean foundInternalLink(String url) { return false。 }// 發(fā)現(xiàn)外部連接時調用,url 表示程序所發(fā)現(xiàn)的 URL,若返回 true則把加入作業(yè)中,否則不加入。 public boolean foundExternalLink(String url) { return false。 }// 當發(fā)現(xiàn)其他連接時調用這個方法。其他連接指的是非 HTML網頁,可能是 Email或者 FTP public boolean foundOtherLink(String url) { return false。 }// 用于處理網頁,這是 Spider程序要完成的實際工作。 public void processPage(HTTP ) { (掃描網頁: + ())。19 new HTMLParse().start()。 }// 用來請求一個被處理的網頁。 public void pletePage(HTTP , boolean error) { }// 由 Spider程序調用以確定查詢字符串是否應刪除。如果隊列中的字符串應當刪除,方法返回真。 public boolean getRemoveQuery() { return true。 }// 當 Spider程序沒有剩余的工作時調用這個方法。 public void spiderComplete() { }} 小結在本章中,首先介紹了網絡機器人的基本概念,然后具體分析了 Spider程序的結構和功能。在最后還結合具體代碼進行了詳細說明。本人在編程中運用了 JavaTM技術,主要涉及到了 和 io兩個包。此外還用了第三方開發(fā)包 Bot。20第四章 基于 Lucene 的索引與搜索 什么是 Lucene 全文檢索Lucene是 Jakarta Apache的開源項目。它是一個用 Java寫的全文索引引擎工具包,可以方便的嵌入到各種應用中實現(xiàn)針對應用的全文索引/檢索功能。 Lucene 的原理分析 全文檢索的實現(xiàn)機制Lucene的 API接口設計的比較通用,輸入輸出結構都很像數據庫的表==記錄==字段,所以很多傳統(tǒng)的應用的文件、數據庫等都可以比較方便的映射到 Lucene的存儲結構和接口中??傮w上看:可以先把 Lucene當成一個支持全文索引的數據庫系統(tǒng)。索引數據源:doc(field1,field2...) doc(field1,field2...) \ indexer / _____________ | Lucene Index| / searcher \ 結果輸出:Hits(doc(field1,field2) doc(field1...))Document:一個需要進行索引的“單元”,一個 Document由多個字段組成Field:字段Hits:查詢結果集,由匹配的 Document組成 Lucene 的索引效率 由于數據庫索引不是為全文索引設計的,因此,使用 like %keyword%時,數據庫索引是不起作用的,在使用 like查詢時,搜索過程又變成類似于一頁頁翻書的遍歷過程了,所以對于含有模糊查詢的數據庫服務來說,LIKE 對性能的危害是極大的。如果是需要對多個關鍵詞進行模糊匹配:like%keyword1% and like %keyword2% ...其效率也就可想而知了。所以建立一個高效檢索系統(tǒng)的關鍵是建立一個類似于科技索引一樣的反向索引機制,將數據源(比如多篇文章)排序順序21存儲的同時,有另外一個排好序的關鍵詞列表,用于存儲關鍵詞==文章映射關系,利用這樣的映射關系索引:[關鍵詞==出現(xiàn)關鍵詞的文章編號,出現(xiàn)次數(甚至包括位置:起始偏移量,結束偏移量),出現(xiàn)頻率],檢索過程就是把模糊查詢變成多個可以利用索引的精確查詢的邏輯組合的過程。從而大大提高了多關鍵詞查詢的效率,所以,
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1