出版時間:2009 年5月 出版社:清華大學(xué)出版社 作者:王亮 頁數(shù):394
Tag標(biāo)簽:無
前言
搜索引擎是指因特網(wǎng)上專門提供查詢服務(wù)的一類網(wǎng)站,這些網(wǎng)站通過網(wǎng)絡(luò)搜索軟件(又稱為網(wǎng)絡(luò)搜索機器人)或網(wǎng)站登錄等方式,收集因特網(wǎng)上大量網(wǎng)站的頁面,經(jīng)過加工處理后建庫,從而能夠?qū)τ脩籼岢龅母鞣N查詢作出響應(yīng),提供用戶所需的信息。用戶的查詢途徑主要包括自由詞、全文檢索、主題詞檢索、分類檢索及其他特殊信息的檢索f企業(yè)、人名、電話黃頁等)。本書中所記述的種種理論與知識,是筆者在多年的搜索引擎開發(fā)過程中的積累與沉淀,其中既涉及了Google和Baidu這種類型的通用搜索引擎,也涉及了垂直搜索引擎的開發(fā)技術(shù)。垂直搜索引擎概念的提出,就是針對某一特定領(lǐng)域、某一特定人群或某一特定需求提供的有一定價值的信息和相關(guān)服務(wù)??梢院唵蔚恼f成是搜索引擎領(lǐng)域的行業(yè)化分工。眾多專業(yè)性網(wǎng)站、行業(yè)網(wǎng)站獨立服務(wù)于互聯(lián)網(wǎng)的成功,恰恰證明了互聯(lián)網(wǎng)的格局應(yīng)該是多方面的。通用搜索引擎的性質(zhì),決定了其不能滿足特殊領(lǐng)域和特殊人群的精準(zhǔn)化信息需求服務(wù)。市場需求多元化決定了搜索引擎的服務(wù)模式必將出現(xiàn)細分,以針對不同行業(yè)提供更加精確的行業(yè)服務(wù)模式。可以說通用搜索引擎的發(fā)展為垂直搜索引擎的出現(xiàn)提供了良好的市場空間,勢必將出現(xiàn)垂直搜索引擎在互聯(lián)網(wǎng)中占據(jù)部分市場的趨勢,也是搜索引擎行業(yè)細分化的必然趨勢。
內(nèi)容概要
《搜索引擎零距離:基于Ruby+Java搜索引擎原理與實現(xiàn)》的內(nèi)容中,既有教科書式的理論闡述,也有“七天入門”式的實例解析,還有《Linux內(nèi)核情景分析》風(fēng)格的細致的代碼分析,甚至還有一些英語文獻翻譯,從初學(xué)者到有一定經(jīng)驗的搜索引擎開發(fā)人員,各個層次的讀者都能找到一些適合自己閱讀的章節(jié)。隨著網(wǎng)絡(luò)信息資源的急劇增長,人們越來越多地關(guān)注如何快速有效地從海量的網(wǎng)絡(luò)信息中,抽取出潛在的、有價值的信息,使之有效地在管理和決策中發(fā)揮作用。搜索引擎技術(shù)解決了用戶檢索網(wǎng)絡(luò)信息的困難,目前搜索引擎技術(shù)正成為計算機科學(xué)界和信息產(chǎn)業(yè)界爭相研究、開發(fā)的對象?!端阉饕媪憔嚯x:基于Ruby+Java搜索引擎原理與實現(xiàn)》的作者是一位資深的搜索引擎開發(fā)人員,書中對數(shù)據(jù)獲?。ňW(wǎng)絡(luò)信息挖掘)與數(shù)據(jù)檢索(搜索引擎)兩個方面作了深入的介紹?!端阉饕媪憔嚯x:基于Ruby+Java搜索引擎原理與實現(xiàn)》首先提出了一套“網(wǎng)絡(luò)數(shù)據(jù)挖掘”的完整理論,并給出一個實際的智能爬蟲系統(tǒng),通過理論與實際的完整呈現(xiàn),使讀者能夠?qū)Α熬W(wǎng)絡(luò)數(shù)據(jù)挖掘”有一個比較具體的認(rèn)識,然后介紹了一個專用程序語言IRS,并給出了這個語言的編譯器以及虛擬機的實現(xiàn)方法。《搜索引擎零距離:基于Ruby+Java搜索引擎原理與實現(xiàn)》還通過對多個開源搜索引擎項目抽絲剝繭的細致分析,引出搜索引擎的一些基本原理與開發(fā)方法,并介紹了一個商業(yè)化搜索引擎的實例?!端阉饕媪憔嚯x:基于Ruby+Java搜索引擎原理與實現(xiàn)》的最后還結(jié)合一個Java框架介紹了一些軟件設(shè)計思想?! 端阉饕媪憔嚯x:基于Ruby+Java搜索引擎原理與實現(xiàn)》涉及網(wǎng)絡(luò)數(shù)據(jù)挖掘、搜索引擎原理、編譯原理、數(shù)據(jù)庫原理、正則表達式、軟件工程、設(shè)計模式、Ruby語言、HTTP協(xié)議等計算機科學(xué)與技術(shù)的知識,適合搜索引擎開發(fā)人員作為參考,也適合有一定計算機基礎(chǔ)的讀者閱讀,以擴展視野。
作者簡介
王亮,主持或參與過多個大中型索引擎開發(fā)與運營,具有豐富的搜索引擎算法理論知識與實際開發(fā)運營經(jīng)驗。曾任職于愛立信、Smarter.com、上海網(wǎng)村、上海邁眾,2009年創(chuàng)立上海睿驛信息技術(shù)有限公司并任CEO,致力于提供搜索引擎相關(guān)的產(chǎn)品和服務(wù)。
書籍目錄
第1章 網(wǎng)頁數(shù)據(jù)挖掘.1 1.1 網(wǎng)頁數(shù)據(jù)挖掘定義11.2 Web數(shù)據(jù)挖掘面臨的問題11.3 Web數(shù)據(jù)挖掘的分類11.4 網(wǎng)頁數(shù)據(jù)的結(jié)構(gòu)與特點31.4.1 HTML超文本標(biāo)記語言31.4.2 WML無線標(biāo)記語言41.5 網(wǎng)頁數(shù)據(jù)挖掘的基本方法61.5.1 預(yù)備知識71.5.2 變量模板匹配方法81.5.3 樹節(jié)點直接標(biāo)識方法101.5.4 語義規(guī)則識別方法13第2章 智能網(wǎng)絡(luò)爬蟲142.1 智能網(wǎng)絡(luò)爬蟲的定義與特點142.2 抓取入口定義142.3 次級頁面自動發(fā)現(xiàn)142.4 次級頁面地址拼接162.5 已爬地址處理172.6 信息采集強度控制192.7 模擬用戶登錄192.8 驗證碼識別202.9 代理服務(wù)器設(shè)置202.10 JavaScript解析控制21第3章 網(wǎng)頁信息挖掘?qū)S贸绦蛟O(shè)計語言IRS233.1 IRS語言的簡介與設(shè)計原則233.2 IRS腳本語法結(jié)構(gòu)233.2.1 頁面配置塊233.2.2 頁面名語句233.2.3 爬蟲配置聲明語句243.2.4 入口聲明語句243.2.5 編碼配置263.2.6 步長配置263.2.7 重試次數(shù)配置273.2.8 正則模式匹配語句273.2.9 匹配名聲明283.2.10 IEE表達式283.2.11 模式匹配修飾符293.2.12 節(jié)點模式匹配語句323.2.13 次級頁面入口語句..3 33.2.14 保存語句353.2.15 Ruby控制語句353.2.16 爬蟲配置語句373.2.17 系統(tǒng)配置語句373.2.18 外部配置文件383.2.19 執(zhí)行語句塊393.2.20 IRQL存儲語句403.2.21 IRQL語言中的數(shù)據(jù)表443.2.22 IRQL內(nèi)部函數(shù)493.2.23 實例解析55第4章 IRS虛擬機及編譯器實現(xiàn)原理694.1 Ruby基本語法704.1.1 字句構(gòu)造和表達式704.1.2 字面值714.1.3 控制結(jié)構(gòu)744.1.4 類和方法的定義804.1.5 運算符表達式844.1.6 變量和常量894.1.7 方法調(diào)用914.2 Java與JRuby的整合934.2.1 Java中的Ruby運行庫環(huán)境934.2.2 IRSReflectionCallback類實現(xiàn)944.2.3 在Java中編譯執(zhí)行Ruby腳本994.2.4 Java內(nèi)嵌Ruby方法總結(jié)1004.3 詞法分析和語法分析1014.3.1 定義與簡介1014.3.2 SableCC1034.4 IRS語言的語義分析1374.5 IRVM虛擬機主類1464.5.1 generateEntrance()1474.5.2 getContent()1494.5.3 match()1604.5.4 Save()1744.5.5 compileAndRun()198第5章 搜索引擎設(shè)計原理2005.1 概述2005.2 Lucene搜索引擎的原理2055.2.1 工作方式2055.2.2 基本概念2065.2.3 包結(jié)構(gòu)2075.2.4 索引操作2085.2.5 搜索2105.2.6 分析器2145.2.7 性能優(yōu)化2155.2.8 并行集群2165.3 Hadoop搜索引擎的原理2205.3.1 組成結(jié)構(gòu)2205.3.2 開發(fā)與使用2225.4 Nutch搜索引擎的原理2265.4.1 簡介2265.4.2 插件體系2265.4.3 數(shù)據(jù)獲取與分析2285.5 Compass搜索引擎的原理2645.5.1 功能增強2645.5.2 API簡化2655.5.3 編程方式2655.6 Solr搜索引擎的原理2665.6.1 概述2665.6.2 使用Solr269第6章 搜索引擎的商業(yè)化實現(xiàn)2756.1 索引2756.1.1 Solr實現(xiàn)2756.1.2 MySE實現(xiàn)2796.1.3 總結(jié)3176.2 查詢3176.2.1 Solr實現(xiàn)3176.2.2 MySE實現(xiàn)3186.2.3 總結(jié)358第7章 Hivemind3597.1 模塊(Modules)3597.2 子模塊與依賴性(SubModules&Dependency)3607.3 服務(wù)點(ServicePoints)3617.4 攔截器(Interceptor)3627.5 配置點(ConfigurationPoints)3637.6 符號資源(SymbolSources)3647.7 轉(zhuǎn)換器(Translators)3657.8 對象提供器(ObjectProviders)3687.9 服務(wù)模型(ServiceModels)3707.10 啟動&預(yù)加載(Startup&EagerLoad)3737.11 服務(wù)構(gòu)造器376后記與感謝393
章節(jié)摘錄
插圖:第1章 網(wǎng)頁數(shù)據(jù)挖掘1.1 網(wǎng)頁數(shù)據(jù)挖掘定義數(shù)據(jù)挖掘(Data Minin9,DM),是從存放在數(shù)據(jù)庫、數(shù)據(jù)倉庫或其他信息庫中的大量數(shù)據(jù)中提取或“挖掘”有趣知識的過程。隨著網(wǎng)絡(luò)的不斷發(fā)展,因特網(wǎng)目前已成為一個巨大的、分布廣泛的和全球性的信息服務(wù)中心。從海量的網(wǎng)絡(luò)信息中尋找有用的知識,早已成為人們的迫切需求。各種類似Google、Baidu等的搜索引擎也層出不窮,Web數(shù)據(jù)挖掘的應(yīng)用在現(xiàn)實中不斷體現(xiàn)。Web數(shù)據(jù)挖掘建立在對大量的網(wǎng)絡(luò)數(shù)據(jù)進行分析的基礎(chǔ)上,采用相應(yīng)的數(shù)據(jù)挖掘算法,在具體的應(yīng)用模型上進行數(shù)據(jù)的提取、數(shù)據(jù)篩選、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)挖掘和模式分析,最后做出歸納性的推理、預(yù)測客戶的個性化行為以及用戶習(xí)慣,從而幫助決策和管理,減少決策的風(fēng)險。Web數(shù)據(jù)挖掘涉及多個領(lǐng)域,除數(shù)據(jù)挖掘外,還涉及計算機網(wǎng)絡(luò)、數(shù)據(jù)庫與數(shù)據(jù)倉儲、人工智能、信息檢索、可視化、自然語言理解等技術(shù)。1.2 Web數(shù)據(jù)挖掘面臨的問題Web的巨大、分布廣泛和內(nèi)容多樣使得目前的Web數(shù)據(jù)挖掘面臨著眾多問題和挑戰(zhàn)。首先,對有效的數(shù)據(jù)倉庫和數(shù)據(jù)挖掘來說,Web上的數(shù)據(jù)過于龐大。而且,Web上的數(shù)據(jù)具有極強的動態(tài)性,不僅數(shù)量增長快而且更新十分迅速。但是面對如此大量的Web信息,卻有調(diào)查表明:99%的Web信息對于99%的用戶是無用的。這樣看來,面對網(wǎng)絡(luò)上形形色色的用戶群體,許多由Web搜索引擎所檢索到的資料將會被淹沒。
后記
從2000年進入大學(xué)計算機專業(yè),開始編寫Pascal語言程序算起,我已經(jīng)在程序設(shè)計領(lǐng)域耕耘了8年。大學(xué)時伴隨我最多是的VC 6.0,閱讀著各色的C++書籍,編寫自己的一個個C++項目,各種各樣的算法、理論、編程思想,經(jīng)過自己的理解消化之后,從書本進入自己的頭腦。這些計算機科學(xué)與軟件工程中的知識,在后來的工作中有意無意地被使用到,正是因為對《編譯原理》的熟悉,當(dāng)遇到網(wǎng)頁信息挖掘這樣一個復(fù)雜項目的時候,我設(shè)計了IRS語言,使用這個語言中各種靈活的表達式、函數(shù)、流程控制來實現(xiàn)對高度靈活復(fù)雜的網(wǎng)頁信息挖掘需求。2004年,我在一家商品搜索引擎公司工作,與同事們一起用C、Pefl、PHP語言為這個系統(tǒng)設(shè)計各種功能模塊。這段時間中,我開始了解搜索引擎系統(tǒng)的概念、算法等方方面面。2005年,我在一家無線搜索引擎公司接受了一個任務(wù):用Java語言獨立實現(xiàn)一個工業(yè)級別的搜索引擎。由于預(yù)算的有限與時間的緊迫,我向開源軟件尋求靈感與幫助。深入研究了L,ucene和。Nutch之后,我發(fā)現(xiàn)它們剛好能符合我的需求,基于這兩個系統(tǒng),我開始架構(gòu)自己的搜索引擎系統(tǒng)UUSE。在以后的若干年中,Lucene的版本從1.4升級到了2.3,功能與性能不斷改善,Nutch中的“分布式計算與文件系統(tǒng)”模塊獨立成為Hadoop項目,性能和可擴展性也有了長足的進步。2006年,Apache發(fā)布了開源的Solr項目,這使得架設(shè)一個中小規(guī)模的搜索引擎變得比較容易。
編輯推薦
《搜索引擎零距離:基于Ruby+Java搜索引擎原理與實現(xiàn)》特色:國內(nèi)垂直搜引擎的扛鼎之作;集開源搜索引擎之大成,融會貫通,自成一體;無線搜索引擎核心技術(shù)零距離接觸;Web信息挖掘?qū)S贸绦蛟O(shè)計語言,語法標(biāo)準(zhǔn)首次發(fā)布;垂直爬蟲專業(yè)并行虛擬機核心技術(shù)展示;多年商業(yè)搜索引擎開發(fā)運營經(jīng)驗之提煉總結(jié);真實的中型分布式搜索引擎開發(fā)案例全景展現(xiàn);最新Java前沿技術(shù)在經(jīng)典計算機理論上的優(yōu)秀應(yīng)用;專業(yè)信息檢索理論與商業(yè)搜索需求的完美結(jié)合;Java軟件工程設(shè)計模式最佳實踐。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載