出版時間:2009-11 出版社:電子工業(yè)出版社 作者:羅剛 頁數(shù):353
Tag標簽:無
前言
15在中國,隨著互聯(lián)網(wǎng)從城市到農(nóng)村的普及,搜索引擎對日常生活產(chǎn)生越來越大的影響。例如,筆者自己一般每天就有15個左右的問題需要求助于搜索引擎。從04年開始筆者也從數(shù)據(jù)庫相關軟件開發(fā)轉(zhuǎn)入搜索引擎相關開發(fā)工作?! oogle20世紀末,在美國國家科學基金會的支持下,斯坦福大學的兩個學生在他們的教授指導下開始了一個數(shù)字圖書館項目。后來,他們創(chuàng)建了Google公司,開創(chuàng)了通過互聯(lián)網(wǎng)搜索技術共享人類信息的新紀元。Google通過網(wǎng)絡廣告取得了巨大的商業(yè)回報,到現(xiàn)在仍然是世界500強企業(yè)中贏利能力最強的公司之一。NASDAQ證券交易市場的最高股價是Google公司的股票。搜索引擎開發(fā)成為一項極有含金量的技術?! eb開始寫作《自己動手寫搜索引擎》這本書以前,已經(jīng)有一些介紹搜索理論或者搜索開發(fā)工具的圖書,但是往往表現(xiàn)出來的是純粹的理論推導和公式定理,或者僅僅是現(xiàn)成開源軟件的介紹、分析和使用,并沒有介紹其理論依據(jù)。有的讀者是數(shù)學專業(yè)的博士,對于相關的數(shù)學模型一看就明白,但對于算法實現(xiàn)可能仍然缺少經(jīng)驗。有的讀者是培訓學校畢業(yè)的學生,可能對Web開發(fā)框架和軟件工具的使用很熟悉,但缺少理論基礎和深入創(chuàng)新的能力。本書的一個特點在于前面是原理介紹,接著是具體的代碼實現(xiàn)。不僅講解抽象的知識,更重要的是把知識轉(zhuǎn)化成具體軟件應用的過程也展示出來?! ucene《自己動手寫搜索引擎》是獵兔企業(yè)搜索開發(fā)團隊的軟件產(chǎn)品研發(fā)和項目實踐的經(jīng)驗匯總。感謝Lucene,它把搜索引擎開發(fā)工作變成了廣大程序員都能夠參與的游戲。所以本書選用Lucene來全方位展現(xiàn)一個商用級別的搜索解決方案。中文分詞當前仍然是實現(xiàn)中文搜索的熱門話題之一。本書重點介紹了中文分詞的相關理論和代碼實現(xiàn),以及在搜索引擎中實用中文分詞等細節(jié)。本書用簡單的例子介紹了搜索引擎完整的實現(xiàn)過程,同時也沒有忽略一些經(jīng)典的算法實現(xiàn)。 該書適合需要具體實現(xiàn)搜索引擎的程序員使用,對于自然語言處理等相關研究人員也有一定參考價值,同時獵兔搜索團隊也已經(jīng)開發(fā)出以本書為基礎的專門培訓課程。本書附帶光盤中的代碼經(jīng)過了詳細的注釋。為了幫助初學者更容易地了解程序的功能,經(jīng)過筆者的精心整理后,每個主要變量和每行主要的執(zhí)行程序都加上了注釋,前后對比圖如下所示。
內(nèi)容概要
《自己動手寫搜索引擎》是獵兔企業(yè)搜索開發(fā)團隊的軟件產(chǎn)品研發(fā)和項目實踐的經(jīng)驗匯總。《自己動手寫搜索引擎》全方位展現(xiàn)出一個商用級別的Lucene搜索解決方案,主要包括爬蟲、自然語言處理和搜索實現(xiàn)部分。爬蟲部分介紹了網(wǎng)頁遍歷方法和從網(wǎng)頁提取主要內(nèi)容的方法?! ∽匀徽Z言處理部分包括了中文分詞從理論到實現(xiàn)以及在搜索引擎中的實用等細節(jié)?! ∑渌匀徽Z言處理的經(jīng)典問題與實現(xiàn)包括:文檔排重、文本分類、自動聚類、語法解析樹、拼寫檢查、拼音轉(zhuǎn)換等理論與實現(xiàn)方法。 在實現(xiàn)搜索方面,《自己動手寫搜索引擎》用簡單的例子介紹了完整的搜索實現(xiàn)過程,覆蓋了從索引庫的設計和索引庫與數(shù)據(jù)庫的同步到搜索用戶界面設計與實現(xiàn)。搜索用戶界面包括實現(xiàn)布爾邏輯查詢、按區(qū)間范圍查詢、搜索結果按日期排序等?!蹲约簞邮謱懰阉饕妗愤€進一步介紹了搜索排序的優(yōu)化方法。 最后以基于Lucene的搜索服務器Solr為例,展示了Lucene的最新應用方法。
作者簡介
羅剛,獵兔搜索(http://www.lietu.com)創(chuàng)始人,當前獵兔搜索在北京和上海均設有研發(fā)部。帶領獵兔搜索技術開發(fā)團隊先后開發(fā)出獵兔中文分詞系統(tǒng)、獵兔智能垂直搜索系統(tǒng)以及網(wǎng)絡信息監(jiān)測系統(tǒng)等,實現(xiàn)互聯(lián)網(wǎng)信息的采集、過濾、搜索和實時監(jiān)測。
書籍目錄
第1章 遍歷搜索引擎技術/11.1 30分鐘實現(xiàn)的搜索引擎/11.1.1 準備工作環(huán)境(10分鐘)/11.1.2 編寫代碼(15分鐘)/31.1.3 發(fā)布運行(5分鐘)/51.2 Google神話/91.3 體驗搜索引擎/91.4 搜索語法/101.5 你也可以做搜索引擎/131.6 搜索引擎基本技術/141.6.1 網(wǎng)絡蜘蛛/141.6.2 全文索引結構/141.6.3 Lucene全文檢索引擎/151.6.4 Nutch網(wǎng)絡搜索軟件/161.6.5 用戶界面/171.7 商業(yè)搜索引擎技術介紹/191.7.1 通用搜索/191.7.2 垂直搜索/201.7.3 站內(nèi)搜索/211.7.4 桌面搜索/231.8 本章小結/24第2章 獲得海量數(shù)據(jù)/252.1 自己的網(wǎng)絡蜘蛛/252.1.1 抓取網(wǎng)頁/252.1.2 網(wǎng)絡蜘蛛遍歷與實現(xiàn)/262.1.3 改進網(wǎng)絡蜘蛛/302.1.4 MP3抓取/342.1.5 RSS抓取/362.1.6 圖片抓取/382.1.7 垂直行業(yè)抓取/392.2 抓取數(shù)據(jù)庫中的內(nèi)容/422.2.1 建立數(shù)據(jù)視圖/422.2.2 JDBC數(shù)據(jù)庫連接/432.2.3 增量抓取/452.3 抓取本地硬盤上的文件/472.4 本章小結/49第3章 提取文檔中的文本內(nèi)容/503.1 從HTML文件中提取文本/503.1.1 HtmlParser介紹/533.1.2 結構化信息提取/633.1.3 查看網(wǎng)頁的DOM結構/683.1.4 正文提取的工具NekoHTML/713.1.5 網(wǎng)頁去噪/733.1.6 網(wǎng)頁結構相似度計算/763.1.7 網(wǎng)站風格樹去除文檔噪聲/803.1.8 正文提取/923.2 從非HTML文件中提取文本/983.2.1 TEXT文件/983.2.2 PDF文件/983.2.3 Word文件/1053.2.4 RTF文件/1063.2.5 Excel文件/1073.2.6 PowerPoint文件/1083.3 流媒體內(nèi)容提取/1093.3.1 音頻流內(nèi)容提取/1093.3.2 視頻流內(nèi)容提取/1113.4 抓取限制應對方法/1133.5 本章小結/114第4章 中文分詞/1154.1 Lucene中的中文分詞/1154.2 Lietu中文分詞的使用/1164.3 中文分詞的原理/1174.4 查找詞典算法/1184.5 最大概率分詞方法/1234.6 新詞發(fā)現(xiàn)/1274.7 詞性標注/1294.8 本章小結/139第5章 自然語言處理/1405.1 語法解析樹/1405.2 文檔排重/1415.3 中文關鍵詞提取/1425.3.1 關鍵詞提取的基本方法/1425.3.2 從網(wǎng)頁中提取關鍵詞/1455.4 相關搜索/1455.5 拼寫檢查/1485.5.1 英文拼寫檢查/1485.5.2 中文拼寫檢查/1495.6 自動摘要/1535.6.1 自動摘要技術/1535.6.2 自動摘要的設計/1545.6.3 Lucene中的動態(tài)摘要/1625.7 自動分類/1635.7.1 Classifier4J/1645.7.2 自動分類的接口定義/1655.7.3 自動分類的SVM方法實現(xiàn)/1665.7.4 多級分類/1675.8 自動聚類/1705.8.1 聚類的定義/1705.8.2 K均值聚類方法/1705.8.3 K均值實現(xiàn)/1735.9 拼音轉(zhuǎn)換/1795.10 語義搜索/1805.11 跨語言搜索/1865.12 本章小結/188第6章 創(chuàng)建索引庫/1896.1 設計索引庫結構/1906.1.1 理解Lucene的索引庫結構/1906.1.2 設計一個簡單的索引庫/1926.2 創(chuàng)建和維護索引庫/1936.2.1 創(chuàng)建索引庫/1936.2.2 向索引庫中添加索引文檔/1946.2.3 刪除索引庫中的索引文檔/1966.2.4 更新索引庫中的索引文檔/1976.2.5 索引的合并/1976.2.6 索引的定時更新/1976.2.7 索引的備份和恢復/1986.2.8 修復索引/1996.3 讀寫并發(fā)控制/2006.4 優(yōu)化使用Lucene/2006.4.1 索引優(yōu)化/2016.4.2 查詢優(yōu)化/2026.4.3 實現(xiàn)時間加權排序/2066.4.4 實現(xiàn)字詞混合索引/2076.4.5 定制Similarity/2146.4.6 定制Tokenizer/2156.5 查詢大容量索引/2176.6 本章小結/218第7章 用戶界面設計與實現(xiàn)/2197.1 Lucene搜索接口(search代碼)/2197.2 搜索頁面設計/2217.2.1 用于顯示搜索結果的taglib/2217.2.2 用于搜索結果分頁的taglib/2237.2.3 設計一個簡單的搜索頁面/2257.3 實現(xiàn)搜索接口/2277.3.1 布爾搜索/2277.3.2 指定范圍搜索/2287.3.3 搜索結果排序/2337.3.4 搜索頁面的索引緩存與更新/2347.4 實現(xiàn)關鍵詞高亮顯示/2367.5 實現(xiàn)分類統(tǒng)計視圖/2397.6 實現(xiàn)相似文檔搜索/2447.7 實現(xiàn)AJAX自動完成/2467.7.1 總體結構/2477.7.2 服務器端處理/2477.7.3 瀏覽器端處理/2497.7.4 服務器端改進/2507.7.5 部署總結/2617.8 jQuery實現(xiàn)的自動完成/2627.9 集成其他功能/2677.9.1 拼寫檢查/2677.9.2 分類統(tǒng)計/2677.9.3 相關搜索/2717.9.4 再次查找/2747.9.5 搜索日志/2757.10 搜索日志分析/2767.11 本章小結/280第8章 其他高級主題/2818.1 使用Solr實現(xiàn)分布式搜索/2818.1.1 Solr服務器端的配置與中文支持/2828.1.2 把數(shù)據(jù)放進Solr/2878.1.3 刪除數(shù)據(jù)/2898.1.4 客戶端搜索界面/2908.1.5 Solr索引庫的查找/2928.1.6 索引分發(fā)/2948.1.7 Solr搜索優(yōu)化/2988.1.8 Solr中字詞混合索引/3028.1.9 相關檢索/3048.1.10 搜索結果去重/3078.1.11 分布式搜索/3118.1.12 SolrJ查詢分析器/3158.1.13 擴展SolrJ/3258.1.14 擴展Solr/3278.1.15 Solr的.NET客戶端/3338.1.16 Solr的PHP客戶端/3348.2 圖像的OCR識別/3368.3 競價排名/3438.4 Web圖分析/3448.5 使用并行程序分析數(shù)據(jù)/3508.6 RSS搜索/3518.7 本章小結/353參考資料/354
章節(jié)摘錄
1995年,兩個年輕的學生Larry Page和Sergey Brin在一點上達成了共識——從大量數(shù)據(jù)中檢索信息是計算系統(tǒng)面臨的最大的挑戰(zhàn)之一。1996年,他們創(chuàng)建了一個叫做BackRub的搜索引擎。這個搜索引擎后來叫做Google。1998年,Page和Brin在Larry的大學宿舍創(chuàng)立Google公司的第一個數(shù)據(jù)中心。2000年,Google開始成為全球最大的搜索引擎一直到現(xiàn)在。2005年,Google股票市值超過1000億美元。公司首次登陸華爾街時,“讓世界更美好”便是它們闡明的目標之一?! 〕怂阉饕?,集成AJAX技術的Gmail郵箱和Google地圖創(chuàng)造了更好的Web界面視覺效果。和Gmail郵箱集成的聊天工具Gtalk也得到廣泛好評。和MSN在客戶端保存歷史聊天記錄不同,Gtalk聊天工具可以在服務器端保存并搜索聊天記錄??梢詾g覽整個地球的Google Earth也帶給人們一種全新的體驗?! ∧阆肫鹗裁创竽X沒有記住的知識了嗎?用搜索引擎吧。它往往不會讓你失望?! ∈聦嵣线@正是Google的創(chuàng)始人設想的。Google創(chuàng)始人Brin在一次用戶大會上講道:“如果你想搜就能搜,幾乎像擁有第二個大腦,那就妙極了。”就在Brin(一直是兩人中站在前臺的那個)說在興頭兒上的時候,Page在不聲不響地露面之后,便帶著“共謀者般的微笑”走出了房間。
編輯推薦
首次揭示商業(yè)級搜索引擎實現(xiàn)秘密?! I(yè)內(nèi)知名開發(fā)團隊傾情奉獻?! ∫ILucene開發(fā)技術升級。 《自己動手寫搜索引擎》特色: 根據(jù)獵兔搜索開發(fā)團隊多年搜索和自然語言處理研發(fā)經(jīng)驗,將國內(nèi)搜索工程項目實踐結合當前流行理論實現(xiàn)搜索技術?! ∪轿徽宫F(xiàn)出一個商用級別的Lucene搜索解決方案,主要包括網(wǎng)絡爬蟲、中文分詞和搜索實現(xiàn)等?! ∮蒙钊霚\出的方式介紹了隱馬爾可夫模型等流行理論?! ∠嚓P的算法全部利用Java語言實現(xiàn)。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載