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

正文內(nèi)容

基于java技術(shù)搜索引擎的研究及實現(xiàn)(編輯修改稿)

2025-07-16 17:35 本頁面
 

【文章內(nèi)容簡介】 程序*/ public 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)內(nèi)部連接時調(diào)用,url表示程序發(fā)現(xiàn)的URL,若返回true則加入作業(yè)中,否則不加入。 public boolean foundInternalLink(String url) { return false。 } // 發(fā)現(xiàn)外部連接時調(diào)用,url表示程序所發(fā)現(xiàn)的URL,若返回true則把加入作業(yè)中,否則不加入。 public boolean foundExternalLink(String url) { return false。 } // 當發(fā)現(xiàn)其他連接時調(diào)用這個方法。其他連接指的是非HTML網(wǎng)頁,可能是Email或者FTP public boolean foundOtherLink(String url) { return false。 } // 用于處理網(wǎng)頁,這是Spider程序要完成的實際工作。 public void processPage(HTTP ) { (掃描網(wǎng)頁: + ())。 new HTMLParse().start()。 } // 用來請求一個被處理的網(wǎng)頁。 public void pletePage(HTTP , boolean error) { } // 由Spider程序調(diào)用以確定查詢字符串是否應刪除。如果隊列中的字符串應當刪除,方法返回真。 public boolean getRemoveQuery() { return true。 } // 當Spider程序沒有剩余的工作時調(diào)用這個方法。 public void spiderComplete() { } } 在本章中,首先介紹了網(wǎng)絡機器人的基本概念,然后具體分析了Spider程序的結(jié)構(gòu)和功能。在最后還結(jié)合具體代碼進行了詳細說明。 本人在編程中運用了JavaTM技術(shù),主要涉及到了net和io兩個包。此外還用了第三方開發(fā)包Bot(由Jeff Heaton提供的開發(fā)包)。第四章 基于lucene的索引與搜索 Lucene是Jakarta Apache的開源項目。它是一個用Java寫的全文索引引擎工具包,可以方便的嵌入到各種應用中實現(xiàn)針對應用的全文索引/檢索功能。 Lucene的原理分析 Lucene的API接口設計的比較通用,輸入輸出結(jié)構(gòu)都很像數(shù)據(jù)庫的表==記錄==字段,所以很多傳統(tǒng)的應用的文件、數(shù)據(jù)庫等都可以比較方便的映射到Lucene的存儲結(jié)構(gòu)和接口中。 總體上看:可以先把Lucene當成一個支持全文索引的數(shù)據(jù)庫系統(tǒng)。 索引數(shù)據(jù)源:doc(field1,field2...) doc(field1,field2...) \ indexer / _____________ | Lucene Index| searcher \ 結(jié)果輸出:Hits(doc(field1,field2) doc(field1...)) Document:一個需要進行索引的“單元”,一個Document由多個字段組成Field:字段Hits:查詢結(jié)果集,由匹配的Document組成 Lucene的索引效率 通常書籍后面常常附關(guān)鍵詞索引表(比如:北京:12, 34頁,上海:3,77頁……),它能夠幫助讀者比較快地找到相關(guān)內(nèi)容的頁碼。而數(shù)據(jù)庫索引能夠大大提高查詢的速度原理也是一樣,想像一下通過書后面的索引查找的速度要比一頁一頁地翻內(nèi)容高多少倍……而索引之所以效率高,另外一個原因是它是排好序的。對于檢索系統(tǒng)來說核心是一個排序問題。 由于數(shù)據(jù)庫索引不是為全文索引設計的,因此,使用like %keyword%時,數(shù)據(jù)庫索引是不起作用的,在使用like查詢時,搜索過程又變成類似于一頁頁翻書的遍歷過程了,所以對于含有模糊查詢的數(shù)據(jù)庫服務來說,LIKE對性能的危害是極大的。如果是需要對多個關(guān)鍵詞進行模糊匹配:like%keyword1% and like %keyword2% ...其效率也就可想而知了。所以建立一個高效檢索系統(tǒng)的關(guān)鍵是建立一個類似于科技索引一樣的反向索引機制,將數(shù)據(jù)源(比如多篇文章)排序順序存儲的同時,有另外一個排好序的關(guān)鍵詞列表,用于存儲關(guān)鍵詞==文章映射關(guān)系,利用這樣的映射關(guān)系索引:[關(guān)鍵詞==出現(xiàn)關(guān)鍵詞的文章編號,出現(xiàn)次數(shù)(甚至包括位置:起始偏移量,結(jié)束偏移量),出現(xiàn)頻率],檢索過程就是把模糊查詢變成多個可以利用索引的精確查詢的邏輯組合的過程。從而大大提高了多關(guān)鍵詞查詢的效率,所以,全文檢索問題歸結(jié)到最后是一個排序問題。 由此可以看出模糊查詢相對數(shù)據(jù)庫的精確查詢是一個非常不確定的問題,這也是大部分數(shù)據(jù)庫對全文檢索支持有限的原因。Lucene最核心的特征是通過特殊的索引結(jié)構(gòu)實現(xiàn)了傳統(tǒng)數(shù)據(jù)庫不擅長的全文索引機制,并提供了擴展接口,以方便針對不同應用的定制??梢酝ㄟ^一下表格對比一下數(shù)據(jù)庫的模糊查詢:  Lucene全文索引引擎數(shù)據(jù)庫索引將數(shù)據(jù)源中的數(shù)據(jù)都通過全文索引一一建立反向索引對于LIKE查詢來說,數(shù)據(jù)傳統(tǒng)的索引是根本用不上的。數(shù)據(jù)需要逐個便利記錄進行GREP式的模糊匹配,比有索引的搜索速度要有多個數(shù)量級的下降。匹配效果通過詞元(term)進行匹配,通過語言分析接口的實現(xiàn),可以實現(xiàn)對中文等非英語的支持。使用:like %net% 會把netherlands也匹配出來, 多個關(guān)鍵詞的模糊匹配:使用like %%net%:..匹配度有匹配度算法,將匹配程度(相似度)比較高的結(jié)果排在前面。沒有匹配程度的控制:比如有記錄中net出現(xiàn)5詞和出現(xiàn)1次的,結(jié)果是一樣的。結(jié)果輸出通過特別的算法,將最匹配度最高的頭100條結(jié)果輸出,結(jié)果集是緩沖式的小批量讀取的。返回所有的結(jié)果集,在匹配條目非常多的時候(比如上萬條)需要大量的內(nèi)存存放這些臨時結(jié)果集。可定制性通過不同的語言分析接口實現(xiàn),可以方便的定制出符合應用需要的索引規(guī)則(包括對中文的支持)沒有接口或接口復雜,無法定制結(jié)論高負載的模糊查詢應用,需要負責的模糊查詢的規(guī)則,索引的資料量比較大使用率低,模糊匹配規(guī)則簡單或者需要模糊查詢的資料量少 中文切分詞機制 對于中文來說,全文索引首先還要解決一個語言分析的問題
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1